如何检查Linux或MAC中两个C++静态库的区别 现在我有两个C++同名的库,例如LIBA/LIABBC。这两个库由于大小不同而不同。但是,它们是用相同的源代码构建的,但编译和链接配置不同。我的问题是,我如何才能获得更多关于它们差异的细节。我能找出可能导致差异的编译选项或链接选项吗?谢谢

如何检查Linux或MAC中两个C++静态库的区别 现在我有两个C++同名的库,例如LIBA/LIABBC。这两个库由于大小不同而不同。但是,它们是用相同的源代码构建的,但编译和链接配置不同。我的问题是,我如何才能获得更多关于它们差异的细节。我能找出可能导致差异的编译选项或链接选项吗?谢谢,c++,linux,macos,C++,Linux,Macos,Objdump-d-分解库。 nm-您可以显示表格符号 查看这两个命令的选项以了解更多信息。在不同的编译单元上使用不同的标志可能会导致代码不兼容,因为不同的标志可能会更改对象的大小和对齐方式。通常在库的名称上添加标志来标记这些差异。libABC.a=>优化的正常版本。libABCD.a=>D后缀调试版本。nm libA/libAbc.a和nm libB/libAbc.a,并使用diff比较这两个命令的输出,可以告诉您它们的符号表是否不同,如果不同,差异是什么。这个答案可以扩展,可以参考上述命令的

Objdump-d-分解库。 nm-您可以显示表格符号


查看这两个命令的选项以了解更多信息。

在不同的编译单元上使用不同的标志可能会导致代码不兼容,因为不同的标志可能会更改对象的大小和对齐方式。通常在库的名称上添加标志来标记这些差异。libABC.a=>优化的正常版本。libABCD.a=>D后缀调试版本。nm libA/libAbc.a和nm libB/libAbc.a,并使用diff比较这两个命令的输出,可以告诉您它们的符号表是否不同,如果不同,差异是什么。这个答案可以扩展,可以参考上述命令的文档,也可以与其他工具进行比较-例如。