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

本人微信:xiaoshitou5854
gcc/g++ 编译参数的更多相关文章
- gcc/g++ 的参数总结(二)
gcc 参数总结 如果是 c++,直接将 gcc 改为 g++ 即可. 1. gcc 编译流程 预处理,Pre-Processing:gcc -E test.c -o test.i //.i文件 编译 ...
- [转]Linux下用gcc/g++生成静态库和动态库(Z)
Linux下用gcc/g++生成静态库和动态库(Z) 2012-07-24 16:45:10| 分类: linux | 标签:链接库 linux g++ gcc |举报|字号 订阅 ...
- gcc/g++ 链接库的编译与链接
GCC编译步骤 gcc -E t1.c -o t1.i 预处理 gcc -S t1.i -o t1.s 转成汇编语言 gcc -c t1.s -o t1.o 转成机器码 gcc t1.o -o t1. ...
- CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update.... yum install 或者 添加y ...
- Clang比 gcc/g++更人性化代码出错提示的C/C++编译器
编译器方面的几个命令 gcc/g++ 一. 常用编译命令选项 常用用法 gcc -Wall test.c -o test gcc编译过程 .c ->(-E)-> .i[中间文件] -> ...
- Linux 之 编译器 gcc/g++参数详解
2016年12月9日16:48:53 ----------------------------- 内容目录: [介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++ ...
- ubuntu 14.04 更新 gcc/g++ 4.9.2
ubuntu 14.04 更新 gcc/g++ 4.9.2 最近看到c++11非常的好用,尤其是自带了regex,于是稍微学了一下c++11的新特性.可是我在编译一个regex程序是却发现稍微复杂一点 ...
- [vim配置]windows下在vim中使用gcc/g++编译调试c/cpp文件
在Linux里面混了一个多月,vim编程用得甚爽.无奈前天将Linux里面的编程文件夹误删,而技术不精无法找回,悲痛欲绝.再者,无限怀念windows里面的游戏,并觉得现在在Linux里面也学不到什么 ...
- gcc/g++链接时.o文件及库的顺序问题
折腾gcc/g++链接时.o文件及库的顺序问题 链接静态库的顺序问题 GCC 编译使用动态链接库和静态链接库--及先后顺序----及环境变量设置总结
随机推荐
- SharePoint布局页创建(实战)
分享人:广州华软 极简 一. 前言 SharePoint有母版页及布局页,母版页控制页面头部.底部,而布局页则控制页面中间内容区域.通过布局页,可以快速修改页面内容区域. SharePoint的页面布 ...
- 同事搭一个测试RAC说节点2发现idle了,报ORA-00304
[oracle@testrac2 11204]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Wed Jan 16 1 ...
- cmd 执行Dcpromo错误:在该 SKU 上不支持 Active Directory 域服务安装向导,Windows Server 2008 R2 Enterprise 配置AD(Active Directory)域控制器
今天,要安装AD域控制器,运行dcpromo结果提示:在该 SKU 上不支持 Active Directory 域服务安装向导. 以前弄的时候直接就通过了,这次咋回事?终于搞了大半天搞定了. 主要原因 ...
- 数据库【mongodb】之pymongo
一个Python操作mongodb的模块 # coding=utf-8 from pymongo import MongoClient #实例化client,建立连接 client = MongoCl ...
- [LeetCode] 25. k个一组翻转链表
题目链接: https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 题目描述: 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链 ...
- 【机器学习笔记一】协同过滤算法 - ALS
参考资料 [1]<Spark MLlib 机器学习实践> [2]http://blog.csdn.net/u011239443/article/details/51752904 [3]线性 ...
- nginx部署静态网站
实验环境 服务器:centos7.5 1核1G Nginx版本:nginx-1.14.2 主题 部署静态文件 根据不同url请求路径,定向到不同的系统文件夹 部署静态文件 假设nginx安装在“/us ...
- javascript权威指南笔记[6-8]
1.三类对象,两类属性 2.原型链只有在查询的时候才会体现 3.对象属性访问 4.属性赋值 5.delete只是断开属性和宿主对象的关系,不会去操作属性中的属性 6.Object.ke() var m ...
- 使用 coverlet 查看.NET Core应用的测试覆盖率
代码覆盖(Code coverage)是软件测试中的一种度量,描述程式中源代码被测试的比例和程度,所得比例称为代码覆盖率. Visual Studio 2017的企业版可以直接查看测试的代码覆盖率, ...
- mysql的学习笔记(九)
mysql不支持FULL JOIN时可用UNION ALL代替 SELECT t1.user_id,t2.user_name FROM t1 LIFT JOIN t2 ON t1.user_id = ...