一些不太有意义的背景:我正在尝试使用 Visual Studio 2010 构建 CGAL。它依赖于 GMP 和 MPFR 库。我正在构建依赖 CGAL 的项目。
在构建我的项目时,出现链接器错误:
error LNK1104: cannot open file 'gmp-vc100-mt-sgd.lib'
但是,我告诉 CGAL 在文件 gmp.lib 中使用 GMP。它确实被使用了。但不知何故,链接器还需要 gmp-vc100-mt-sgd.lib。因此,“gmp-vc100-mt-sgd.lib”是默认名称,我通过更改一些 CGAL 配置 .h 文件将其更改为“gmp.lib”。我检查了所有可能的地方:
- Linker->Additional Dependencies 在我的项目中没有这样的库
- 我的项目没有对此库的引用
- 以上适用于我的解决方案中的所有项目
- 任何包含的 .h 文件中都没有
#pragma comment(lib, "gmp-vc100-mt-sgd.lib")
指令(我已经为项目中的所有文件生成了 .i 预处理器输出)
我试图重建 CGAL 并重建我的解决方案,但没有结果 - 链接器仍然需要旧的 'gmp-vc100-mt-sgd.lib' 文件。
我被困住了。还有其他选项可以检查吗?其他 .lib 依赖项来自其他来源吗?gmp-vc100-mt-sgd.lib 的唯一提及是在 /DEFAULTLIB: 指令下的 CGAL .lib 和 .obj 文件中。我搜索了 CGAL 解决方案中的所有文件,发现没有提到这个神奇的 gmp-vc100-mt-sgd.lib 名称。
我检查了 .i 文件中的每个 #pragma 指令,以确保名称 gmp-vc100-mt-sgd.lib 没有被分割成部分,所以我找不到它。它绝对没有出现在那里。
有任何想法吗?