C++ 如何查找静态c/c++;VisualStudio中的库
我有一个应用程序和一个静态库。该库似乎构建得很好-它确实可以很好地编译myC++ 如何查找静态c/c++;VisualStudio中的库,c++,c,visual-studio,static-libraries,C++,C,Visual Studio,Static Libraries,我有一个应用程序和一个静态库。该库似乎构建得很好-它确实可以很好地编译myfoo和bar和Geewizz函数,并且创建静态库时没有任何错误或警告 但是,当应用程序构建并链接到静态库时,它会设法链接到函数foo和bar,但找不到函数geehizz。我如何判断geewizz是否进入了图书馆?我看不到任何像用于构建应用程序的库那样的/map选项。在构建应用程序时使用\map选项是没有意义的,因为它找不到我的geehizz函数,也没有报告它的依据 我使用C和C++的混合,我怀疑可能有函数名的翻译/翻译问
foo
和bar
和Geewizz
函数,并且创建静态库时没有任何错误或警告
但是,当应用程序构建并链接到静态库时,它会设法链接到函数foo
和bar
,但找不到函数geehizz
。我如何判断geewizz
是否进入了图书馆?我看不到任何像用于构建应用程序的库那样的/map
选项。在构建应用程序时使用\map
选项是没有意义的,因为它找不到我的geehizz
函数,也没有报告它的依据
我使用C和C++的混合,我怀疑可能有函数名的翻译/翻译问题,或者调用约定问题,这是导致问题的原因,所以我认为有一个包含在库中的函数的列表应该能够照亮这个问题。但是,如果有任何关于解决此类问题的更一般性的建议,我很高兴听到。
感谢@indiv和@WhozCraig特别提供的有用意见,您至少有以下两种选择:- 在Visual Studio的链接器程序中使用
选项(/LIST
)lib.exe
- 将
实用程序与dumpbin
选项一起使用/linkermember
/LIST
选项易于使用方面并没有什么帮助。您必须在命令行中将其指定为一个附加选项,但如何做到这一点尚不清楚/LIST
本身会生成标准输出的列表,但指定文件或使用
重定向操作符都不会以任何明显的方式工作。事实上,我已经完全放弃了想办法让这个选项起作用
谢天谢地,
dumpbin
是VisualStudio(甚至是Express版本)附带的一个实用程序,并且有很好的文档记录。因此,除非有人让普通人可以远程使用/LIST
,否则请使用dumpbin
,这样您就会出现链接错误,对吗?@MarcoA.:仅当针对共享库链接可执行文件时。在他尝试使用共享库之前,他想知道它是否有效。@MarcoA:不再是了-我已经通过在extern“C”{…}
构造中声明geehizz
修复了链接错误。但我仍然有兴趣知道如何在静态库中获得函数列表,因为这将有助于更快地证实我的怀疑。静态库始终有效。您可以尝试dumpbin.exe:。我不知道它是否能在静态库上工作,但我不明白为什么不能。@WhozCraig-鉴于上述情况,也许你应该将另一个答案标记为这个答案的副本;-)我认为应该有人详细说明dumpbin/linkermember
语法,并获得一些免费的代表分数,因为心存感激的人会对问题和答案进行投票