我正在开发一个包含100多个文件的解决方案。我正在使用MS Visual Studio 2015 Pro。编译它很好,问题出现在链接阶段。
LINK抱怨其中一个项目的图书馆,但只给我错误编号。 使用的命令行(简化)如下:
LINK.exe /NOLOGO /MANIFEST /IMPLIB:C:\\MySolution\\myownlib.lib -LARGEADDRESSAWARE -subsystem:console -MACHINE:X86 -DEBUG -INCREMENTAL /DLL File1.cpp.1.o File2.cpp.1.o File3.cpp.1.o File4.cpp.1.o /OUT:C:\\MySolution\\myownlib.dll
我得到的唯一输出如下:
File1.cpp.1.o : error LNK2005:
File2.cpp.1.o : error LNK2005:
File3.cpp.1.o : error LNK2005:
File4.cpp.1.o : error LNK2005:
File1.cpp.1.o : error LNK2001:
File2.cpp.1.o : error LNK2001:
File3.cpp.1.o : error LNK2001:
File4.cpp.1.o : error LNK2001:
我找不到任何线索,为什么链接器不会抱怨重复的符号或未解决的符号。由于lib拥有超过80个对象,并且几乎所有对象都被列出,找到错误的符号就像在大海捞针一样!
编辑:我不使用IDE编译,我使用开发人员命令提示符进行构建。在Visual Studio中迁移项目并不是坦率的可能,因为我正在处理的程序从未在Visual Studio下导入,我们只使用编译器/链接器。此外,我的一位同事在该项目上工作并没有遇到这样的麻烦。似乎在我的环境下发生了一些事情......
编辑2 :完全安装修复解决了问题。