如何告诉库是使用C ++ 11编译的

时间:2015-10-29 06:04:29

标签: c++ c++11 shared-libraries

如何判断某个c ++库是否已链接使用 c ++ 11标准?

1 个答案:

答案 0 :(得分:3)

elf二进制文件默认包含使用的编译器版本的签名。

现在,关于使用的编译器标志,如果在编译时使用-frecord-gcc-switches,那么,您可以在ELF可执行文件中找到签名。

 g++ -frecord-gcc-switches -std=c++0x trial.cpp
readelf -p .GCC.command.line a.out

部分' .GCC.command.line':

的字符串转储
  [     0]  -imultilib . [     d]  -imultiarch x86_64-linux-gnu   [    2a]  -D_GNU_SOURCE   [ 38]  trial.cpp   [    42]  -mtune=generic   [    51]  -march=x86-64  [    5f]  -std=c++0x   [    6a]  -frecord-gcc-switches   [    80]   
-fstack-protector