gcc常用编译命令

转载 2016年06月01日 13:54:43

1. 执行到预编译,并输出预编译结果

gcc -E source_file.c

2. 执行到汇编,并输出汇编文件

gcc -S source_file.c

3. 执行到编译,并输出目标文件

gcc -c source_file.c

4. 编译并生成可执行文件

gcc (-E/S/c/) source_file.c -o output_filename

5. 生成供调试用的可执行文件

gcc -g source_file.c

在gdb中运行。由于文件中包含了调试信息因此运行效率很低,且文件也大不少。这里可以用strip命令重新将文件中debug信息删除。这是会发现生成的文件甚至比正常编译的输出更小了,这是因为strip把原先正常编译中的一些额外信息(如函数名之类)也删除了。用法为 strip a.out

6. 直接生成与运用strip同样效果的可执行文件(删除了所有调试信息和符号信息)。

gcc -s source_file.c

7. 编译器对代码进行自动优化编译,输出效率更高的可执行文件

gcc -O source_file.c

-O 后面还可以跟上数字指定优化级别,如:
gcc -O2 source_file.c
数字越大,越加优化。但是通常情况下,自动的东西都不是太聪明,太大的优化级别可能会使生成的文件产生一系列的bug。一般可选择2就可以了,3会有一定风险。

8. 在编译中开启警告

- 在编译中开启一些额外的警告

gcc -W source_file.c

- 在编译中开启全部的警告

gcc -Wall source_file.c

9. 较复杂的编译

gcc source_file.c -L/path/to/lib -lxxx -I/path/to/include

-l, 指定所使用到的函数库,本例中链接器会尝试链接名为libxxx.a的函数库。
-L,指定函数库所在的文件夹,本例中链接器会尝试搜索/path/to/lib文件夹。
-I, 指定头文件所在的文件夹,本例中预编译器会尝试搜索/path/to/include文件夹。

学习linux之 gcc/g++常用的命令行编译指令

1. gcc -E source_file.c -E,只执行到预编译。直接输出预编译结果。 2. gcc -S source_file.c  -S,只执行到源代码到汇编代码的转换,输出汇编代码。 ...
  • zhubaohua_bupt
  • zhubaohua_bupt
  • 2016年10月09日 10:36
  • 6991

Windows 下实现gcc 命令行编译

1、安装Codeblocks到适合的目录下; 2、设置环境变量:计算机--右键--属性--高级系统设置--高级选项卡--环境变量; 在系统变量中查看有无Path变量,没有则新建,有则编辑,添加Co...
  • CMbug
  • CMbug
  • 2014年06月12日 16:58
  • 1953

常用GCC编译命令总结及其他Linux命令总结

1.直接编译一个test.c文件   gcc -EL test.c -o test   生成test是可执行文件.   2.只生成.o文件,为打包生成库文件准备   gcc -c hello...
  • alex_xhl
  • alex_xhl
  • 2012年10月14日 13:38
  • 5018

gcc编译命令----小话c语言(14)

[Mac 10.7.1  Lion  Intel-based  x64  gcc 4.2.1] Q: 如何让编译的文件可以被gdb调试? A: 可以加入-g参数。如下代码,保存为hello...
  • cxsjabcabc
  • cxsjabcabc
  • 2012年05月19日 22:23
  • 4758

gcc常用编译选项 汇总

目录(?)[+]GCC编译器常用选项-E:只进行预处理,不编译 -S:只编译,不汇编 -c:只编译、汇编,不链接 -g:包含调试信息 -I:指定include包含文件的搜索目录 -o:输出成...
  • lee244868149
  • lee244868149
  • 2014年08月22日 11:42
  • 2949

Linux系统GCC常用命令和GCC编译过程描述

Linux系统GCC常用命令和GCC编译过程描述 前言: GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C+...
  • CoderJYF
  • CoderJYF
  • 2016年12月06日 17:21
  • 1938

gcc编译基本用法

gcc的基本用法 命令格式:gcc [选项] [文件名] 编译的四个阶段: -E:仅执行编译预处理; -c:仅执行编译操作,不进行连接操作; -S:将C代码转换为汇编代码;...
  • xiaqunfeng123
  • xiaqunfeng123
  • 2016年05月03日 08:11
  • 25573

为了编译AVX代码,升级Redhat 5.5 GCC到4.7.1

Redhat 的GCC编译器是4.1版本,对于SSE4,AVX,AVX2的支持不够好,官方建议4.7
  • vbskj
  • vbskj
  • 2014年08月08日 00:47
  • 2379

gcc编译选项:c++11 多线程编译

c++11原生支持多线程编程,如下代码(假设文件名为test.cpp): #include #include using namespace std; int main() {  ...
  • bianjun1075
  • bianjun1075
  • 2017年01月15日 21:46
  • 1361

gcc/g++ 编译器使用简介(包含交叉编译器)

GNU CC(简称gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++、Object C、Jave等多种语言编写的程序。gcc又可以作为交叉编译工具,它能够在当前CPU平台上...
  • b5w2p0
  • b5w2p0
  • 2014年08月15日 15:01
  • 1106
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gcc常用编译命令
举报原因:
原因补充:

(最多只允许输入30个字)