MSVC:检查静态库(修复未解析的外部符号)
我想问一下你们使用什么工具和技术来修复 MSVC 中的链接器错误。我的问题是,我将可执行文件链接到自建静态库,并且得到很多未解析的外部符号(LNK2019)。我尝试使用不同的调用约定构建我的库,但没有成功。
我想检查该 lib 文件(它是一个调试版本)并查看该 lib 提供了哪些函数,以便找到链接器错误的原因。
如果有任何关于如何系统地调试丢失的外部符号的建议,我将不胜感激。
谢谢, 诺伯特
I wanted to ask what tools and techniques you use to fix linker errors in MSVC. My problem is, that I link an executable against a self built static lib and I get a lot of unresolved external symbols (LNK2019). I've tried building my libs with different calling conventions but I didn't succeed.
I want to inspect that lib file (it's a debug build) and see what functions are made available by that lib to maybe find the cause of the linker error.
I'd appreciate any suggestions how to systematically debug missing external symbols.
thanks,
Norbert
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通常这些是由于多个部分之间的编译器开关或选项不同造成的。确保在所有这些库中使用相同的编译器开关来生成代码:特别是运行时库需要相同(在运行时库中的 C/C++ 下 - 多线程 (/MT)(静态)或多线程 DLL (/医学博士))。这表明您是否想要再次静态链接 Microsoft 运行时。
Usually these are due to compiler switches or options being different between multiple pieces. Make sure you use the same compiler switch for code generation in all of them: especially the runtime libraries need to be the same (under C/C++ in Runtime Library -- Multi Threaded (/MT) (static) or Multi Threaded DLL (/MD)). This indicates that you want to statically link agains the Microsoft runtime or not.