博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gcc相关
阅读量:5052 次
发布时间:2019-06-12

本文共 1608 字,大约阅读时间需要 5 分钟。

gcc相关

  • 预处理 -E, 调用处理器cpp

      宏替换, 头文件展开, 去注释
      xxx.c-->xxx.i

  • 编译-S, 调用编译器gcc, 编译的过程最消耗时间,

      xxx.i --> xxx.s 生成汇编文件

  • 汇编-c, 调用连接器ld

      xxx.s --> xxx.o 生成二进制文件

  • 连接, 没有参数, 默认输出a.out

       可执行文件

zyb@server:~$ g++ -E test.cpp &> test.i     # 需使用文件重定向, 否则输出至屏幕zyb@server:~$ g++ -S test.i zyb@server:~$ g++ -c test.s zyb@server:~$ g++ test.o -o test.appzyb@server:~$ ls test.*test.app  test.cpp  test.i  test.o  test.s

gcc常用参数

  -I编译时指定头文件目录
  -L指定静态库所在目录
  -l指定静态库的名字
  -o指定生成文件的名字
  -c将汇编文件生成二进制文件, 得到一个.o文件
  -g生成文件内含调试信息, 文件会比没有调试信息大
  -D在编译的时候指定一个宏, 在测试程序时使用
  -Wall输出警告信息
  -O##代表优化级别, 有1, 2, 3可选

zyb@server:~/dir_test$ cat ./include/head.h #ifndef __HEAD_H__#define __HEAD_H__#define NUM1  10#define NUM2  20int add(int a, int b);int div(int a, int b);int mul(int a, int b);int sub(int a, int b);#endifzyb@server:~/dir_test$zyb@server:~/dir_test$ cat sum.c #include 
#include "head.h"int main() { int a = NUM1; int aa; int b = NUM2; int sum = a + b; #ifdef DEBUG printf("The sum value is: %d + %d = %d\n", a, b, sum);#endif return 0;}zyb@server:~/dir_test$zyb@server:~/dir_test$ gcc sum.c -I ./include/ -D DEBUGzyb@server:~/dir_test$ ./a.out The sum value is: 1 + 2 = 3zyb@server:~/dir_test$ gcc sum.c -I ./include/ # 没有编译时没有-D选项 zyb@server:~/dir_test$ ./a.out # 不会输出打印信息zyb@server:~/dir_test$ gcc sum.c -I ./include/ -Wall # 输出警告sum.c: In function ‘main’:sum.c:8:6: warning: unused variable ‘sum’ [-Wunused-variable] int sum = a + b; ^sum.c:6:6: warning: unused variable ‘aa’ [-Wunused-variable] int aa;

转载于:https://www.cnblogs.com/hesper/p/10672976.html

你可能感兴趣的文章
Objective - C基础: 第四天 - 10.SEL类型的基本认识
查看>>
android调试debug快捷键
查看>>
【读书笔记】《HTTP权威指南》:Web Hosting
查看>>
Inoodb 存储引擎
查看>>
数据结构之查找算法总结笔记
查看>>
Android TextView加上阴影效果
查看>>
Requests库的基本使用
查看>>
C#:System.Array简单使用
查看>>
「Foundation」集合
查看>>
二叉树的遍历 - 数据结构和算法46
查看>>
类模板 - C++快速入门45
查看>>
RijndaelManaged 加密
查看>>
Android 音量调节
查看>>
windows上面链接使用linux上面的docker daemon
查看>>
Redis事务
查看>>
Web框架和Django基础
查看>>
python中的逻辑操作符
查看>>
HDU 1548 A strange lift (Dijkstra)
查看>>
每天一个小程序—0005题(批量处理图片大小)
查看>>
JavaScript特效源码(3、菜单特效)
查看>>