gcc/g++编译步骤
- 预处理:生成.i的文件 g++ -E file.cpp > file.i
- 转混编:将预处理的文件转成汇编文件g++ -S file.cpp => file.s
- 目标文件:生成机器代码g++ -c file.cpp => file.o
- 可执行文件:g++ -o file file.cpp
编译选项
- x 设定文件所用的语言,如果没有这个选项则根据文件的后缀进行判定
eg: gcc -x c file.c - -c 激活预处理,编译,和汇编生成.o的目标文件
eg: gcc -c c file.c - -S 激活预处理和编译生成.s的混编代码
eg: gcc -S file.c - -E 激活预处理
eg: gcc -S file.c - -o制定目标名称,缺省的时候,gcc 编译出来的文件是a.out
eg: gcc -o file file.cpp - -I指定#include “file”的文件查找目录
eg: gcc -o file file.cpp -I/usr/local/include - -L指定编译的时候库的搜索路径
eg: gcc -o file file.cpp -L/usr/local/lib On 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-g 在编译的时候产生调试信息
-shared 此选项将尽量使用动态库,所以生成文件比较小,不过需要系统由动态库
Wall 显示所有的警告信息
- -fPic 使.so文件的代码段变为真正意义上的共享,如果不加-fPIC,则加载.so文件的代码段时,代码段引用的数据对象需要重定位, 重定位会修改代码段的内容,这就造成每个使用这个.so文件代码段的进程在内核里都会生成这个.so文件代码段的copy.每个copy都不一样,取决于 这个.so文件代码段和数据段内存映射的位置
- -
- x 设定文件所用的语言,如果没有这个选项则根据文件的后缀进行判定
gcc编译常用选项
最新推荐文章于 2020-12-16 20:26:21 发布