gcc and g++分别是GNU的c & c++编译器。gcc/g++在执行编译的时候一般有下面4步:
1 预处理,生成.i的文件。
命令如下:g++ -E test.cpp
此命令只进行预处理,不会生成文件,需要将输出重定向到 test.i 文件中,命令如下:
g++ -E test.cpp -o test.i 或 g++ -E test.cpp > test.i
⒉将预处理后的文件转换成汇编语言,生成文件.s。
命令如下:g++ -S test.i
也可以直接生成 .s文件,命令如下:
g++ -S test.cpp
⒊由汇编变为目标代码(机器代码)生成.o的文件。
命令如下:g++ -c test.s 或 g++ -c test.s -o test.o
也可以直接生成.o文件,命令如下:g++ -c test.cpp
⒋连接目标代码,生成可执行程序。
命令如下:g++ -o test test.cpp 或 g++ test.cpp -o test 或 g++ -o test test.o
其它参数
- -Wall 使能所有警告信息 命令如下(以hello.cpp为例):g++ -Wall -o hello hello.cpp
- -g 可以对程序进行调试,生成调试信息。 命令如下:g++ -g -o hello hello.cpp
- -w 关闭警告信息 命令如下:g++ -w -Wall -o hello hello.cpp
如图,加入-w 参数后,没有输出警告信息。
- -I(大写的i)指定头文件查找目录,当头文件与源文件不在同一目录下时可使用该参数,
g++ -c test.cpp ./func/func.cpp -I./func