GCC 编译器

1.GCC命令
gcc [选项] [文件名]
主要选项如下:
-c 只编译不链接为可执行文件,编译器将输入的.c 文件编译为.o 的目标文件。
-o<输出文件名> 用来指定编译结束以后的输出文件名,如果使用这个选项的话 GCC 默
认编译出来的可执行文件名字为 a.out。
-g 添加调试信息,如果要使用调试工具(如 GDB)的话就必须加入此选项,此选项指示编
译的时候生成调试所需的符号信息。
-O 对程序进行优化编译,如果使用此选项的话整个源代码在编译、链接的的时候都会进
行优化,这样产生的可执行文件执行效率就高。
-O2 比-O 更幅度更大的优化,生成的可执行效率更高,但是整个编译过程会很慢。

例:将源文件main.c编译成名为main的可执行文件
gcc main.c -o main

2.GCC编译流程
预处理、编译、汇编和链接

(1)预处理就是对程序中的宏定义等相关的内容先进行前期的处理。(-> .i文件)
(2)编译过程就是将.i文件编译成.S 结尾的汇编文件。
(3)汇编是先将.S 文件转换为.o目标文件。
(4)链接将所有.o 文件链接在一起形成可执行文件。

3.GCC警告提示
编译时加选项
-Wall 打开所有类型语法警告
例:
gcc -Wall main.c -o main

4.GCC使用库函数
1.Linux函数库
系统库安装在“/usr/lib”和“/lib”目录下。库文件名由前缀“lib”和库名以 及后缀组成:
共享库后缀由“.so”和版本号组成;
静态库后缀“.a”。
如:数学共享库“libm.so.5”;数学静态库“libm.a”。

2.相关路径选项
不在系统默认路径的库文件,由选项指定
-I [文件路径]

如有两个文件在"root/app/inc"下,则可使用:
gcc main.c -I /root/app/inc -o main

3.链接共享库和静态库
-l[库名](小写L)
系统默认链接共享库,链接静态库需加“-static”
(1)链接共享库
如:链接共享库文件libm.so(库名为:m)
gcc main.c -o main -lm
(2)链接静态库
如:链接静态库文件“libm.a”(库名为:m)
gcc main.c -o main -lm -static

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值