编译器中-std和-stdlib含义

  • C, Code
  • 2,675 clicked

1. -std= <c++11/gnu++11/c99>

  • -std指编译器编译时采用的C/C++标准,用哪种标准进行编译。

  -std=c++11,支持C++11标准; -std=gnu++11,支持C++11标准和GNU扩展特性;-std=c99开启c语言c99支持;-std=c11开启c语言c11库的支持;

  比如,GNU extensions to the C and C++ languages

2. -stdlib= <libstdc++/libc++>

  • -stdlib指编译器编译时依赖的标准库。

  gcc编译器没有-stdlib 这样命令行选项,LLVM clang编译器支持。 这是因为clang为您提供链接LLVM标准C ++库( libc ++ )或GNU标准C ++库( libstdc ++ ),而gcc只支持 libstdc ++ 。 简单说就是两个都是 C++ 标准库,libc++ 是针对 Clang 编译器特别重写的 C++ 标准库,而 libstdc++ 则是 GCC 的对应 C++ 标准库。

  编译程序范例指定CXXFLAGS = -std=c++11 -stdlib=libstdc++

发表评论

邮箱地址不会被公开。 必填项已用*标注