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

kro*_*oiz 7 c++ shared-libraries c++11

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

bas*_*sav 3

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

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

 g++ -frecord-gcc-switches -std=c++0x trial.cpp
readelf -p .GCC.command.line a.out
Run Code Online (Sandbox Code Playgroud)

'.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
Run Code Online (Sandbox Code Playgroud)

  • readelf -p .GCC.command.line a.out ..这应该给你字符串转储 (2认同)