【C语言】g++常用编译选项备忘

时间:2021-03-16 09:14:55

g++常用编译选项小结

不加参数: gcc test.c 生成可执行文件 a.out
(默认生成可执行文件)

-o : 生成指定的文件名 (例子: gcc -o test test.c , 生成可执行文件 test )

-c : 生成目标文件 (例子: gcc -c test.c , 生成目标文件 test.o )

-c -o : 生成指定文件名的目标文件 (例子: gcc -c -o hello.o test.c , 生成目标文件 hello.o )

一条命令可以编译多个源文件生成目标文件:
gcc -c test1.c test2.c 将生成 test1.o test2.o

多个源文件编译成一个执行文件:

gcc -o test test1.c test2.c 将生成 test

先生成目标文件,再连接成可执行文件:

gcc -c test1.c test2.c 将生成 test1.o test2.o

gcc -o test test1.o test2.o 将生成 test

其他:

-E: 进行预编译

-S: 编译成汇编语言

-Wno-deprecated: 用于忽略头文件信赖的警告

打包成静态链接库:

ar -rcs libstr.a string.o –> 把string.o打包为库文件libstr.a

使用静态链接库:

gcc -o test main.c libstr.a

或者:

gcc -o test main.c -l str (str为库名,它不包含函数库lib和扩展名.a, -l链接的库名要在-o的目的名称之前)

显式指定链接函数库的路径: gcc -o test main.c -L ./ -l str (路径为当前目录)

动态链接库的使用跟静态链接库一样。