我需要知道我的库是如何编译的,即使用了哪些编译器选项?具体而言,它是否是通过优化编译的,还有其他几个选项。有没有办法找出在Linux上编译.so库时使用的编译器选项?
有没有什么办法可以在linux,x86_64平台上提取这些信息?
我需要知道我的库是如何编译的,即使用了哪些编译器选项?具体而言,它是否是通过优化编译的,还有其他几个选项。有没有办法找出在Linux上编译.so库时使用的编译器选项?
有没有什么办法可以在linux,x86_64平台上提取这些信息?
我不相信有可能自动检测编译器选项;至少不是以便携的方式。
你可以做的是改变你的构建脚本(例如你的Makefile)自动附加一个定义和优化参数(-D标志)。
如果库来自您使用的Linux发行版,则可以查看包的来源,例如,对于基于Debian的系统:apt-get source PACKAGENAME
,获取构建参数。
同样,如果它来自基于RPM的发行版,则可以下载可能包含构建选项的SRPM。 – Bash 2012-03-11 08:33:21
因此,给定一个现有的.so文件,你想知道它是如何编译的?请记住,一个库可能是由多个源文件生成的,每个源文件都可能使用不同的选项编译。 – 2012-03-09 09:44:44
知道每个源文件编译选项会很有帮助.. – sandeep 2012-03-09 13:12:56
你使用'-frecord-gcc-switches'或'-grecord-gcc-switches'吗?这些选项是有原因的。 – MSalters 2012-03-09 15:45:03