我尝试在发布模式下在Visuas C ++ 10中构建我的多项目应用程序
我收到下一个链接错误:
2 - ;所有输出都是最新的。
2> PidAppLib.lib(ThreadWin32.obj):错误LNK2011:未链接的预编译对象;图像可能无法运行
2> C:\ infinite_memories_svn \ projects \ sw \ NewPidTools \ PidWriter \ Release \ PidLabler.exe:致命错误LNK1120:1个未解析的外部因素
2 - ;
2> Build FAILED。
我怎么知道哪个物体未解决?
ThreadWin32.obj是从Internet下载的外部库。
答案 0 :(得分:6)
确定。
我已经解决了这个问题
我有2个库,比如a.lib和b.lib,以及项目,c。
a.lib使用b.lib所以在a.lib的librarian依赖项中我添加了b.lib,c使用a.lib所以我添加了
它依赖。
它在调试中工作,但在发布中我还应该将b.lib添加到c的依赖项中。
奇怪但它解决了问题
答案 1 :(得分:3)
我在重构的大型项目中遇到此错误。在重构过程中,我偶尔会编译单个源文件,以检查我所做的更改,而无需构建整个项目。根据您的项目配置,这可能导致.obj文件在不同的目录中输出到构建项目时通常输出的位置。在我的例子中,手动编译的源文件的.obj文件输出在源代码目录而不是中间构建目录中。
这样做的副作用似乎是在构建整个项目时,手动编译的源文件可能无法重新编译,即使其他地方的其他更改意味着它们应该是(就像需要重新编译预编译头文件的更改一样) )。
我的解决方案是手动删除通过手动编译单个源文件生成的所有.obj文件。根据项目配置执行清理项目可能也有效。