gcc/g++ 编译参数

1, -E(大写),预处理
  • 例子:gcc -E test.cpp -o test.i
  • 预处理,把程序里的#开头的替换掉,比如#include,然后生成test.i
2,-P(大写),去掉预处理生成的杂乱信息
  • -E后生成的文件里面有很多杂乱的信息,用-P可以去掉杂乱的信息。
3,-S(大写),生成汇编文件
  • -masm=att 生成AT&T格式的汇编文件
  • -masm=intel 生成intel格式的汇编文件
4,-c(小写),只编译不链接,生成二进制文件
  • 把生成的二进制文件再转回汇编代码的方法:objdump -D main.o
  • objdump -M intel 和 objdump -M att,分别生成intel格式的汇编代码和AT&T格式的汇编代码
5,-D 指定宏

假如有下面的代码:

#include <stdio.h>
int main(){
#ifdef DEBUG
  printf("DEBUG LOG\n");
#endif
  printf("in\n");
}

在编译的时候,使用【-D DEBUG】,【printf("DEBUG LOG\n");】就可以被执行。

6,-Wall 显示更多的警告信

比如:定义了一个变量c,但是你没有使用它。加上-Wall就会出c没有被使用的警告信息,不加就不会出。

int main(){
  int c;
#ifdef DEBUG
  printf("DEBUG LOG\n");
#endif
  printf("in\n");
}

警告信息:

test.c: In function ‘main’:
test.c:4:7: warning: unused variable ‘c’ [-Wunused-variable]
   int c;
       ^
7,用gcc编译c++的源文件:【-lstdc++】
gcc -g hello.cpp -lstdc++
8,优化代码(大写的):-O1,-O2,-O3

优化内容:让代码效率更高,要逐级的实验,先从1开始。
比如有两个变量int a = 10, b = 10;优化后,就尽量使用一个等;函数调用的地方,直接把调用去掉,替换成函数的代码等。

c/c++ 学习互助QQ群:877684253

1414315-20181106214320230-961379709.jpg

本人微信:xiaoshitou5854

转载于:https://www.cnblogs.com/xiaoshiwang/p/10256761.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值