本文主要是介绍Linux下gcc编译命令复习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
GCC
- 安装
sudo apt install gcc g++
- 查看版本
gcc/g++ -v/--version
- gcc常用参数选项
gcc编译选项 |
说明 |
-E |
预处理指定的源文件,不进行编译 |
-S |
编译指定的源文件,但是不进行汇编 |
-c |
编译、汇编指定的源文件,但是不进行链接 |
-o [file1] [file2] / [file2] -o [file1] |
将文件 file2 编译成可执行文件 file1 |
-I directory |
指定 include 包含文件的搜索目录 |
-g |
在编译的时候,生成调试信息,该程序可以被调试器调试 |
-D |
在程序编译的时候,指定一个宏 |
-w |
不生成任何警告信息 |
-Wall |
生成所有警告信息 |
-On |
n的取值范围:0~3。编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 |
-l |
在程序编译的时候,指定使用的库 |
-L |
指定编译的时候,搜索的库的路径。 |
-fPIC/fpic |
生成与位置无关的代码 |
-shared |
生成共享目标文件,通常用在建立共享库时 |
-std |
指定C方言,如:-std=c99,gcc默认的方言是GNU C |
库的制作
静态库
- 命名规则
- Linux下文件名为libxxx.a ,lib为固定前缀,.a为固定后缀,xxx为自定义库名。
- 制作
- gcc获得.o文件
- 将.o文件打包,使用ar工具
ar rcs libxxx.a xxx.o xxx.o
r - 将文件插入备存文件中
c - 建立备存文件
s - 索引
- 使用
使用gcc中的-l和-L指定使用制作好的静态库。(注意头文件预编译要用-I)
示例编译命令:
gcc main.c -o main -I ./include -l calc -L ./lib
注意上面使用的静态库文件名为libcalc.a
动态库
这篇关于Linux下gcc编译命令复习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!