嵌入式入门必看:用几张图轻松看懂GCC!
扫描二维码
随时随地手机看文章
GCC程序编译过程
GCC常用后缀名
GCC使用方法
最基础也是最高端的方法
Linux环境下man gcc
命令查看帮助信息
# 在这里列举man的使用方法
回车 下一行
page up 上一行
page down 下一行
home[方向键左]第一页
end[方向键右] 最后一页
空格 下一页
b 上一页
q 退出
/string 从上往下搜索字符串string
?string 从下往上搜索字符串string
n 下一个搜索匹配项
N 上一个搜索匹配项
GCC参数汇总
GCC常用参数
编译过程参数
参数 | 作用 |
---|---|
-c | 只编译不链接,生成目标文件 .o |
-S | 只编译不汇编,生成汇编代码 |
-E | 只预编译 |
-g | 包含调试信息 |
-o 文件名 | 指定输出目标文件 |
-I 路径名 | 搜索头文件路径 |
库选项参数
linux下静态链接库和动态链接库格式
# 静态链接库
.a [libname.a]
# 动态链接库
.so [libname.so[主版本号.次版本号.发行号]]
例如 libgupnp-dlna-gst-2.0.so.3.0.0
在Linux系统中:
头文件存放路径一般为/usr/include
库文件存放路径一般为/usr/lib
参数 | 作用 |
---|---|
-static | 静态编译 |
-shared | 生成动态库文件 进行的动态编译 |
-L 路径名 | 库文件搜索中添加路径 |
-fPIC | 生成使用相对位置无关码的目标代码 |
默认情况下的编译为动态链接
编译静态链接库
-
先生成目标文件 .o -
ar crv [*.a] [*.o]
-
调用静态链接库 gcc -o [file.c] -L [file.a]
编译动态链接库
-
生成位置无关目标代码 gcc -fPIC -c [file.c]
-
生成动态链接库 gcc -shared -o [*.so] [*.o]
-
调用动态链接库 gcc -o [file] -L [file.so]
-
为了使程序运行时加载动态链接库,将动态库拷贝到 /usr/lib
目录下
警告选项
参数 | 作用 |
---|---|
-w | 关闭所有警告 |
-Wall | 发出gcc提供的所有有用警告 |
- pedantic | 发出ansic的所有警告 |
优化选项
参数 | 作用 |
---|---|
-O 优化等级 | 优化等级,一般只是最终发布的时候才用 |
本文授权转载自公众号“于宙”,作者:yz001
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!