San*_*Kim 3 linux gcc static-libraries
我想检查编译的库是调试模式还是发布模式。
我发现了objdump --syms,但似乎不起作用。我试过objdump --syms *.a | grep debug objdump --syms *.a | grep release。但两者都没有打印任何内容。
如何在 Linux 中检查库的编译类型?
严格来说,Linux 中的库不存在“调试”或“发布”模式这样的概念。gcc可以生成带有或不带有调试符号的库,供调试器稍后使用gdb,并且带有或不带有优化。调试符号输出由编译任何单元时传递给 gcc 的选项控制-g,优化由 flags 控制-O1,-O2并且-O3针对不同级别的优化。
假设您想查明库是否包含调试符号,那么您已经为其运行了正确的命令:objdump --syms *.a | grep debug通常会为包含调试符号的对象生成非空输出。通过“release”一词过滤输出不会为您提供有关库的编译方法的任何信息,因为没有术语“release”。
另请注意,许多开源库都是在启用调试符号和优化的情况下进行分布式编译的,因此存在某种被认为是“调试”和“发布”的混合。
| 归档时间: |
|
| 查看次数: |
4689 次 |
| 最近记录: |