你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

嵌入式入门——带你看懂GCC!

[复制链接]
gaosmile 发布时间:2020-4-24 13:14
GCC程序编译过程; E6 W7 U) o, u$ S) k: W
微信图片_20200424131018.png - {3 }+ I3 f( H9 @  B" ~
GCC常用后缀名
9 d# ?! S! f; e  b; E; F- x 微信图片_20200424131021.png ' Z3 Y/ t  [9 ~$ f3 x2 Q

7 f1 P  F* f0 Q; H/ v! uGCC使用方法
4 ]7 l5 |& E* c2 R

最基础也是最高端的方法

Linux环境下man gcc 命令查看帮助信息

# 在这里列举man的使用方法
% N5 Z. m) V1 B回车 下一行
$ }( K: F/ R) m/ g3 t# ]9 Ipage up 上一行/ W( ?# m( V9 _% c' L# H
page down 下一行
9 x+ ~3 V# a+ x( |  O0 Ahome[方向键左]第一页7 b% a+ J, y6 \, J; D& U% `* }+ Z
end[方向键右] 最后一页
) d& ?, {5 }) y: r空格 下一页
, O; b" x* ]  T- J$ V% N4 Lb 上一页3 I" N; v$ Z$ w2 M( o  Q
q 退出
& d+ A4 R8 K. C$ y, h; y/string 从上往下搜索字符串string+ O# ?+ r: z/ k% T
?string 从下往上搜索字符串string
' k1 n+ t/ n! R9 _% K2 Zn 下一个搜索匹配项
- s* o8 O4 D. p$ @$ l+ }* f: bN 上一个搜索匹配项

+ V3 S- J& v% A, D 微信图片_20200424131026.png
# n# f% D9 s  \; R2 J命令使用
" @1 j2 o( h2 m& l 微信图片_20200424131029.png
5 @# S% q" z) r7 x手册" z$ D& K4 |' L) s% M" y' q8 W
GCC参数汇总4 Q  j( x8 n- D0 I8 q: u0 }% Y
微信图片_20200424131033.png
0 T8 \* R; I' z# AGCC常用参数
0 \& E! _1 Q' a) }! A+ H: N 微信图片_20200424131036.png 6 H. y5 U" A4 R$ L" G4 V
编译过程参数  w. D) _4 T( v" ^' A6 P1 \
参数
作用
-c
只编译不链接,生成目标文件 .o
-S
只编译不汇编,生成汇编代码
-E
只预编译
-g
包含调试信息
-o 文件名
指定输出目标文件
-I 路径名
搜索头文件路径
库选项参数

linux下静态链接库和动态链接库格式

# 静态链接库
9 H" b  [* J7 C1 |5 {.a [libname.a]
- |. W6 A% q5 h( a5 D
# 动态链接库7 o" v6 s" f0 t; r, S  \
.so [libname.so[主版本号.次版本号.发行号]]
5 {1 v. b. A& ^9 w5 p9 K例如 libgupnp-dlna-gst-2.0.so.3.0.0
! @% ~% A2 I9 }+ ]' V

在Linux系统中:

头文件存放路径一般为/usr/include

库文件存放路径一般为/usr/lib

参数
作用
-static
静态编译
-shared
生成动态库文件 进行的动态编译
-L 路径名
库文件搜索中添加路径
-fPIC
生成使用相对位置无关码的目标代码

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

编译静态链接库
  • 先生成目标文件 .o
  • ar crv [*.a] [*.o]
  • 调用静态链接库 gcc -o [file.c] -L [file.a]6 t3 C, L: S" m: l- I+ |; g# M
编译动态链接库
  • 生成位置无关目标代码 gcc -fPIC -c [file.c]
  • 生成动态链接库 gcc -shared -o [*.so] [*.o]
  • 调用动态链接库 gcc -o [file] -L [file.so]
  • 为了使程序运行时加载动态链接库,将动态库拷贝到/usr/lib目录下% S5 t5 Q( W$ M9 i0 o
警告选项
参数
作用
-w
关闭所有警告
-Wall
发出gcc提供的所有有用警告
- pedantic
发出ansic的所有警告
优化选项
参数
作用
-O 优化等级
优化等级,一般只是最终发布的时候才用

) v) S. W: V& H
赞 收藏 评论2 发布时间:2020-4-24 13:14

举报

2个回答
goyhuan 回答时间:2020-4-25 15:08:06
学习
李康1202 回答时间:2020-4-25 17:13:43
谢谢分享
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版