找到visual studio使用的链接位置

时间:2013-05-19 16:58:13

标签: visual-studio linker fortran

这似乎是一个常见的问题,但我似乎无法找到答案:

有没有办法找到VS用于在链接时链接特定功能的特定库?

我正在使用Visual Studio构建一个多项目解决方案。 我有一个解决方案(库解决方案),它生成一堆在多个程序中使用的.libs。其中一个库是从强制执行UPPERCASE名称的Fortran代码(英特尔Fortran 77编译器)生成的。

我将这些库静态链接到我构建应用程序的解决方案中(恰好是在C ++中,使用适当的“extern C”和原型。

我遇到的问题是,我可以删除生成特定功能的库,我的程序很乐意编译(好吧)和链接(什么废话!)。所以我去Linker中的每个库 - >输入 - >附加依赖项,然后执行objdump查找函数(fortran中的well子例程)名称,并且它没有出现。我为所有项目依赖项做同样的事情,但仍然没有骰子。

如果我将库(以及所有函数调用和原型)更改为随机(如myFunction12345)并重新编译和链接,那么一切都按照我的预期运行,所以显然有些东西被链接起来我无法找到。

fwiw我的函数名是AIR

我对解决我的特定问题不太感兴趣,因为我正在学习如何弄清楚VS在链接时使用了哪些LIB。另外,我很想知道是否有一些链接标志可以被抛出来警告,或者如果在链接时有多个定义的对象则会出错。

任何想法?

1 个答案:

答案 0 :(得分:3)

向链接器命令行添加/详细其他选项。在结果输出中,查找“在xxxx中找到_AIR”这样的行。周围的线条应该清楚地表明发生了什么。

您可能会在目标库之前的库搜索路径中引入一个具有相同名称的库,或者也可能在默认库中定义相关符号。