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++