记录一些常用的C++编译器选项。
g++
GCC是 GNU Compiler Collection 的缩写,是多种语言的编译器集合。GCC在历史上也指GNU C Compiler,这就不难理解为什么gcc也是C语言的编译命令了。GCC (GNU Compiler Collection)实际上综合了多种语言,其支持的语言包括C, C++, Objective-C, Objective-C++, Java, Fortran, Ada, Go。
这里,将g++常用的编译选项记录如下
选项 | 含义 |
---|---|
-std=standard | 语言标准,如-std=c++11表示采用2011 ISO C++标准 |
-c | 编译但是不链接 |
-o file | file是文件名,输出到文件file中 |
-I dir | dir是路径,表示把dir加到头文件搜索路径中。这个选项很重要,特别是在使用第三方库的时候,以及cpp文件与h文件不再同一个路径下的时候 |
-O | 编译器优化级别控制。默认不做优化,即-O0 。使用-O1 , -O2 , -O3 ,编译器优化程度依次增加,优化越高,编译时间越长 |
-fopenmp | 打开OpenMP |
-Wall | 打开所有警告 |
-Wfatal-errors | 该选项告诉编译器遇到第一个错误时就停止,而不是继续并显示所有错误 |
-l | 链接到某个库,比如-lnetcdf_c++4 |
-L dir | 可以与-l 配合使用,告诉编译器去哪里找到链接库 |
icpc
Intel编译器中,C++编译器的命令是icpc,C的命令是icc。icpc的编译器选项和g++的很像。
选项 | 含义 |
---|---|
-std= | 同g++, 如-std=c++11表示使用C++11标准 |
-c | 同g++ |
-o | 同g++ |
-I | 同g++ |
Wall | 同g++ |
-qopenmp | 打开openmp选项 |
参考资料