如何在Linux中检查库是否为Debug或Release

时间:2014-12-16 02:19:10

标签: linux gcc static-libraries

我想检查编译的库是否为DEBUG MODE或RELEASE MODE。

我找到objdump --syms,但似乎无效。我尝试了objdump --syms *.a | grep debug objdump --syms *.a | grep release。但两者都没有打印。

如何在Linux中检查编译类型的库?

1 个答案:

答案 0 :(得分:1)

严格地说,linux中的库没有“调试”或“发布”模式这样的概念。 gcc可以生成带或不带调试符号的库,以后gdb调试器可以使用它们,有或没有优化。调试符号输出由编译任何单元时传递给gcc的选项-g控制,优化由标志-O1-O2-O3控制,以用于不同的优化级别。

假设您想知道库是否包含调试符号,您已经为它运行了正确的命令:objdump --syms *.a | grep debug通常为包含调试符号的对象生成非空输出。通过“发布”字过滤输出将不会提供有关库的编译方法的任何信息,因为没有术语“发布”。

另请注意,许多开源库都是分布式编译的,同时启用了调试符号和优化,因此将某些内容混合在一起被认为是“调试”和“发布”。