今天在一个项目中链接一个自己编译的第三方静态库zlib时,报错“unresolved external symbol _inflate”(无法解析的外部符号)。这个报错说明是在链接过程中出错,因此我想看下编译的zlib库是否有这个符号。
linux可以通过readelf看库的符号表,visual studio自带的dumpbin工具也实现了类似功能,可以查看vs编译库的信息。
使用步骤
1.开始菜单栏找到 native tools command prompt
2. 在命令行输入dumpbin.exe,可以看到以下选项
其中,/SYMBOLS选项是显示符号表
3.查看库的符号表
使用命令 dumpbin.exe /SYMBOLS zlib.lib
找到了符号 _inflate@8,因为该符号后面加了后缀@8,所以无法解析。
修改zlib库的编译选项后解决了该问题