Visual studio 定位visual studio使用的链接位置

Visual studio 定位visual studio使用的链接位置,visual-studio,linker,fortran,Visual Studio,Linker,Fortran,这似乎是一个常见的问题,但我似乎找不到答案: 有没有办法找到VS在链接时链接特定函数所使用的特定库 我正在使用VisualStudio构建一个多项目解决方案。 我有一个解决方案(库解决方案),它可以生成一组跨多个程序使用的.lib。其中一个LIB是由强制使用大写名称的Fortran代码(英特尔Fortran 77编译器)生成的 < P>我静态地将这些库链接到我构建应用程序的解决方案中(该应用程序恰好是C++),具有适当的“外部C”和原型。 我的问题是,我可以删除生成特定函数的库,而我的程序可以愉

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

有没有办法找到VS在链接时链接特定函数所使用的特定库

我正在使用VisualStudio构建一个多项目解决方案。 我有一个解决方案(库解决方案),它可以生成一组跨多个程序使用的.lib。其中一个LIB是由强制使用大写名称的Fortran代码(英特尔Fortran 77编译器)生成的

< P>我静态地将这些库链接到我构建应用程序的解决方案中(该应用程序恰好是C++),具有适当的“外部C”和原型。 我的问题是,我可以删除生成特定函数的库,而我的程序可以愉快地编译(很好)和链接(胡说!)。因此,我在Linker->Input->Additional dependencies中查找每个库,并执行objdump查找函数(以及fortran中的子例程)我对所有项目依赖项都做同样的事情,但仍然没有骰子

如果我去将库(以及所有函数调用和原型)更改为随机的(比如myFunction12345)并重新编译和链接,一切都会按照我的预期工作,因此很明显有些东西正在链接,而我找不到

我的函数名是AIR

我对解决我的特殊问题不太感兴趣,因为我在学习如何找出VS在链接时使用的LIB。此外,我想知道是否有一些链接器标志可以抛出以发出警告,或者如果链接时有多个定义的对象,则会出错


有什么想法吗?

向链接器命令行添加/verbose附加选项。在结果输出中,查找诸如“Find\u AIR In xxxx”之类的行。周围的行应该清楚地指示发生了什么


你可能有一个相同的名字从你的预定库中的库搜索路径中拉入,或者相关的符号也被定义在默认的库中。

当你说你的程序编译好的时候,我想你的意思是有一个C++程序,有一个主程序,而不是库编译好。关于静态LIBS还是DLL?如果编译器对FORTRAN符号大写名,它非常奇怪,不常见。你使用哪种编译器?@ CUL:嗯,库和C++程序(包含main)都编译。库编译成一个.LIB和C++程序编译和链接。库是。图书馆不是DLLs@VladimirF我们在“英特尔Fortran 77编译器”中为此特定库强制使用大写作为编译器选项。我们这样做是有历史原因的,但从功能上讲,它与默认编译方式(小写)没有任何区别通常Fortran是不可变的,所以大写或小写在你去链接之前都不重要。当我们调用C或C++的子程序时,我们会匹配情况。我只编译到小写的测试,但是它需要在C/C++侧上重新编码一段代码,我想避免。我应该补充说我对它不感兴趣。解决我的特殊问题,就像我在寻找一个工具或流程,让我在链接时识别冲突一样。或者Linker/General/Show Progress,它做同样的事情。这正是我想要的,谢谢!现在看起来很明显。