gcc编译常用命令
gcc编译流程
预处理->编译->汇编->链接
常用编译参数
gcc选项 | 作用 |
---|---|
-o | 对.i ,.s ,.o ,可执行文件 等生成目标文件 |
-E | 只对源程序进行预处理,即只生成.i 文件后就停止编译,结果输出到标准输出 ,需要使用> 写入指定文件 |
-S | 只生成.s 汇编文件后就停止编译 |
-c | 只编译源程序,不对编译后产生的目标代码进行链接 |
-I | 后跟目录,将该目录加入搜索头文件的目录路径 |
-L | 后跟目录,将该目录加入搜索库的目录路径 |
-l | 链接lib库 |
-g | 在目标文件中嵌入调试信息,以便gdb 工具对程序进行调试,及用于生成带有调试信息的程序 |
举例
仅预处理:
gcc -E main.c > main.i
生成汇编代码:
gcc -S main.c
仅编译不进行链接:
gcc -c main.s -o main.o
使用.o文件生成可执行目标程序
gcc main.o -o main
或者 gcc -o main main.c
指定搜索头文件和链接库的目录
gcc -o main main.c -I /home/main/include -L /home/main/lib -lworld
# -lworld表示在上面的lib路径中寻找libworld.so动态库文件
# 如果gcc编译选项加入了-static,则表示寻找libworld.a静态库文件
单文件编译
现有 main.c
编译命令:
gcc main.c -o main
# 如果为windows平台,则将目标文件改为main.exe即可
多文件编译
现有 main.c hello.c hello.h
编译命令:
gcc main.c hello.c -o main
或者将.c文件单独编译:
gcc -c hello.c -o hello.o
gcc -c main.c -o main.o
gcc hello.o main.o -o main
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WAHAHA's blog!
评论