当前位置:首页 > 嵌入式 > 嵌入式微处理器
[导读]GCC程序编译过程 GCC常用后缀名 GCC使用方法 最基础也是最高端的方法 Linux环境下man gcc 命令查看帮助信息 # 在这里列举man的使用方法 回车 下一行 page up 上一行 page down 下一行 home[方向键左]第一页 end[方向键右] 最后一页 空格 下一页 b 上一页 q 退

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 生成使用相对位置无关码的目标代码

默认情况下的编译为动态链接

编译静态链接库

  1. 先生成目标文件 .o
  2. ar crv [*.a] [*.o]
  3. 调用静态链接库 gcc -o [file.c] -L [file.a]

编译动态链接库

  1. 生成位置无关目标代码 gcc -fPIC -c [file.c]
  2. 生成动态链接库 gcc -shared -o [*.so] [*.o]
  3. 调用动态链接库 gcc -o [file] -L [file.so]
  4. 为了使程序运行时加载动态链接库,将动态库拷贝到 /usr/lib目录下

警告选项

参数 作用
-w 关闭所有警告
-Wall 发出gcc提供的所有有用警告
- pedantic 发出ansic的所有警告

优化选项

参数 作用
-O 优化等级 优化等级,一般只是最终发布的时候才用


本文授权转载自公众号“于宙”,作者:yz001

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

嵌入式ARM

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭