这似乎是一个常见问题,但我似乎无法找到答案:
有没有办法找到 VS 在链接时用来链接特定函数的特定库?
我正在使用 Visual Studio 构建多项目解决方案。我有一个解决方案(库解决方案),它生成一堆跨多个程序使用的 .lib。这些库之一是从强制大写名称的 Fortran 代码(英特尔 Fortran 77 编译器)生成的。
我将这些库静态链接到我构建应用程序的解决方案中(恰好在 C++ 中,带有适当的“外部 C”和原型。
我遇到的问题是,我可以删除生成特定函数的库,并且我的程序可以愉快地编译(好的)和链接(废话!)。所以我去链接器->输入->附加依赖项中的每个库,并执行一个objdump来寻找函数(fortran中的子程序)名称,但它没有出现。我对所有项目依赖项做同样的事情,但仍然没有骰子。
如果我去将库(以及所有函数调用和原型)更改为随机的东西(如 myFunction12345)并重新编译和链接,一切都会按我的预期工作,所以很明显有些东西正在链接中,我找不到。
fwiw 我的函数名称是 AIR
我对解决我的特定问题不太感兴趣,因为我正在学习如何弄清楚 VS 在链接时使用了哪些 LIB。另外,我很想知道是否有一些链接器标志可以抛出警告,或者如果在链接时有多个定义的对象,则会出错。
有任何想法吗?