这是怎么回事?VS2008很奇怪的链接错误

时间:2022-01-27 20:03:04
VS2008中文版。我的工程是一个输入法,输入法是一种DLL,只不过扩展名为.ime而已。

以前编译,链接的时候,如果这个输入法已经被某个应用程序使用,也就是说这个Dll处于被打开的状态,当然会链接错误,这是正常的。

但是现在,从最近几天起,却发现:有时候编译、链接,编译可以成功,链接却显示错误:提示信息为(前面的一大串编译提示信息就略去了):

1>正在链接...
1>set.obj : warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/INCREMENTAL:NO”规范)
1>   正在创建库 c:\windows\system32\zywb.lib 和对象 c:\windows\system32\zywb.exp
1>zywb.exp : warning LNK4070: .EXP 中的 /OUT:zywb.dll 指令与输出文件名“c:\windows\system32\zywb.ime”不同;忽略指令
1>正在嵌入清单...
1>mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "..\..\..\Windows\System32\zywb.ime". f
1>生成日志保存在“file://c:\1\zywb\zywb\Debug\BuildLog.htm”
1>zywb - 1 个错误,138 个警告
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========


看这个信息,很象是这个ime处于被打开的状态,可是仔细检查,却没有被打开。而且再次编译、链接,由于前面已经编译好了,所以就只链接了,提示信息为:

1>------ 已启动生成: 项目: zywb, 配置: Debug Win32 ------
1>正在嵌入清单...
1>生成日志保存在“file://c:\1\zywb\zywb\Debug\BuildLog.htm”
1>zywb - 0 个错误,0 个警告
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========

第二次就链接成功了。这是怎么回事?

如果再强制“重新生成解决方案”,还是一样,第一次可以编译成功,但链接失败。第二次,只链接,就会成功。

以前没出现这个毛病,是最近几天才出现的。

7 个解决方案

#1


刚才重启了一下,发现就可以编译、链接一次成功了。但是开了两个QQ,再编译,又出现那种情况:第一次编译没问题,链接失败。第二次(只链接)成功。

这是怎么回事呢?是内存不够?

#2


这个是因为你的项目之间有依赖性,你要设置一下peoject编译生成的先后顺序
至于哪里设置,请自己找一下

#3


不好意思,没仔细看,原来你只有一个项目,那就不太清楚原因在哪里了

#4


会不会是你的输入法确实已经使用了?
你把他删除了试试?

#5


删了也还是这样:第一次编译成功、链接失败,第二链接成功。

#6


连接成功能否正常运行?

#7


引用 6 楼 worldy 的回复:
连接成功能否正常运行?

能正常运行.其实就是第一次的时候,显示编译成功,链接失败,其实已经链接成功了,可以正常运行了.

#1


刚才重启了一下,发现就可以编译、链接一次成功了。但是开了两个QQ,再编译,又出现那种情况:第一次编译没问题,链接失败。第二次(只链接)成功。

这是怎么回事呢?是内存不够?

#2


这个是因为你的项目之间有依赖性,你要设置一下peoject编译生成的先后顺序
至于哪里设置,请自己找一下

#3


不好意思,没仔细看,原来你只有一个项目,那就不太清楚原因在哪里了

#4


会不会是你的输入法确实已经使用了?
你把他删除了试试?

#5


删了也还是这样:第一次编译成功、链接失败,第二链接成功。

#6


连接成功能否正常运行?

#7


引用 6 楼 worldy 的回复:
连接成功能否正常运行?

能正常运行.其实就是第一次的时候,显示编译成功,链接失败,其实已经链接成功了,可以正常运行了.