1. -c 编译产生对象文件(*.obj)而不链接成可执行文件,当编译几个独立的模块,而待以后由链接程序把它们链接在一起时,就可以使用这个选项,如:
$cc -c hello.c ===> hello.o
$cc hello.o
2. -o 允许用户指定输出文件名,如
$cc hello.c -o hello.o
or
$cc hello.c -o hello
3. -g 指明编译程序在编译的输出中应产生调试信息.这个调试信息使源代码和变量名引用在调试程序中或者当程序异常退出后在分析core文件时可被使用.
4. -D 允许从编译程序命令行定义宏符号
一共有两种情况:一种是用-DMACRO,相当于在程序中使用#define MACRO,另一种是用-DMACRO=A,相当于程序中的#define MACRO A.如对下面
这代码:
#ifdefine DEBUG
printf("debug message\n");
#endif
编译时可加上-DDEBUG参数,执行程序则打印出编译信息
5. -I 可指定查找include文件的其他位置.例如,如果有些include文件位于比较特殊的地方,比如/usr/local/include,就可以增加此选项如下:
$cc -c -I/usr/local/include -I/opt/include hello.c 此时目录搜索会按给出的次序进行.
6. -E 这个选项是相对标准的,它允许修改命令行以使编译程序把预先处理的C文件发到标准输出,而不实际编译代码.在查看C预处理伪指令和C宏时,这是很有
用的.可能的编译输出可重新定向到一个文件,然后用编辑程序来分析:
$cc -c -E hello.c >cpp.out 此命令使include文件和程序被预先处理并重定向到文件cpp.out.以后可以用编辑程序或者分页命令分析这个文件,并
确定最终的C语言代码看起来如何.
7. -O 优化选项, 这个选项不是标准的
-O和 -O1指定1级优化
-O2 指定2级优化
-O3 指定3级优化
-O0指定不优化
$cc -c O3 -O0 hello.c 当出现多个优化时,以最后一个为准!!
8. -Wall 以最高级别使用GNU编译程序,专门用于显示警告用!!
$gcc -Wall hello.c
9. -L指定连接库的搜索目录,-l(小写L)指定连接库的名字
$gcc main.o -L/usr/lib -lqt -o hello
上面的命令把目标文件main.o与库qt相连接,连接时会到/usr/lib查找这个库文件.也就是说-L与-l一般要成对出现.
**********************gcc/egcs 的主要选项*********
gcc 命令的常用选项
选项 解释
-ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色,
例如 asm 或 typeof 关键词。
-c 只编译并生成目标文件。
-DMACRO 以字符串“1”定义 MACRO 宏。
-DMACRO=DEFN 以字符串“DEFN”定义 MACRO 宏。
-E 只运行 C 预编译器。
-g 生成调试信息。GNU 调试器可利用该信息。
-IDIRECTORY 指定额外的头文件搜索路径DIRECTORY。
-LDIRECTORY 指定额外的函数库搜索路径DIRECTORY。
-lLIBRARY 连接时搜索指定的函数库LIBRARY。
-m486 针对 486 进行代码优化。
-o FILE 生成指定的输出文件。用在生成可执行文件时。
-O0 不进行优化处理。
-O 或 -O1 优化生成代码。
-O2 进一步优化。
-O3 比 -O2 更进一步优化,包括 inline 函数。
-shared 生成共享目标文件。通常用在建立共享库时。
-static 禁止使用共享连接。
-UMACRO 取消对 MACRO 宏的定义。
-w 不生成任何警告信息。
-Wall 生成所有警告信息。
分享到:
相关推荐
GCC编译优化选项详解 GCC(GNU Compiler Collection)是GNU项目的一部分,用于将源代码转换为机器可执行的指令。GCC提供了丰富的编译优化选项,旨在提升程序的运行效率和代码大小,同时在一定程度上牺牲编译时间和...
以下是arm-linux-gcc编译选项的详细知识点说明: 1. 编译过程的四个阶段: - 预处理阶段:GCC会对源文件进行预处理,展开宏定义、处理条件编译指令、包含头文件等。 - 编译阶段:经过预处理的源文件会被转化为...
资料合集中的"nordic52832 nordic使用gcc编译环境搭建和使用说明"文章可能会详细解释以上每一步,包括具体的命令行选项、配置文件设置以及常见问题的解决方法。对于初学者来说,这样的资源是非常宝贵的,因为它可以...
GCC 编译指南还提供了其他一些选项,用于控制编译过程的各个阶段。下面对一些基本参数进行介绍: * .ld 文件:ld 文件是指出连接时内存映象格式的文件。 参数顺序 在使用 GCC 编译指南时,参数的顺序可能会影响...
介绍常用GCC常用编译选项,让你轻松在linux环境下开发程序.
在实际工作中,掌握一些常用的GCC编译选项参数,能够极大地提高开发效率和代码质量。** ### **1. `-c` 参数** 该选项告诉GCC只编译源代码,不链接生成可执行文件。这通常用于预编译头文件或在大型项目中分步骤构建...
其中,options 是可选的编译选项,source_files 是要编译的源文件,output_file 是编译生成的可执行文件。 GCC 编译命令的常用选项包括: * -c:将源文件编译成目标文件,但不链接生成可执行文件。 * -o:指定输出...
6. 编写Makefile或使用IDE如Keil、IAR等,配置编译选项、链接器脚本等。 7. 使用编译命令(如`arm-none-eabi-gcc`)进行编译和链接,生成`.elf`文件。 8. 使用工具(如`arm-none-eabi-objcopy`)将`.elf`转换为`.hex...
GCC编译数据库并不是一个传统意义上的数据库,而是一种存储项目编译指令的数据结构或文件格式,通常用于记录编译过程中使用的命令行选项。这种数据库有助于自动化工具理解如何编译项目中的每个源文件,从而简化了...
本文将详细讲解Linux下GCC的编译过程,包括预处理、编译、汇编和链接四个阶段,并探讨相关的编译选项和优化原理。 1. 预处理 预处理是GCC处理C源代码的第一步,由cpp程序负责。在这个阶段,GCC执行以下操作: - ...
"Gcc编译选项-报错告警选项.rar"这个压缩包文件很可能包含了关于如何设置GCC编译器在遇到错误和警告时的具体行为的相关资料。 在GCC中,错误和警告选项是非常重要的,它们直接影响到编译过程的严谨性和代码质量。...
【GCC编译C程序】是Linux环境中开发C语言软件的核心环节。GNU编译器集(GCC),最初称为GNU C编译器,由Richard Stallman在1987年发起,旨在构建符合自由软件理念的编译器,用于构建GNU项目中的其他软件。GCC很快因...
GCC还支持很多编译选项,例如`-Wall`用于开启警告,`-g`用于生成调试信息,`-O2`用于优化代码等。在开发过程中,这些选项非常有用: ```bash gcc -Wall -g -O2 -o my_program main.c helper.c ``` 在编译过程中,...
总之,理解GCC编译选项和编译过程对于C语言开发至关重要。通过熟练掌握这些知识,开发者能够更有效地调试和优化代码,确保程序的正确性和高效性。在学习编程的过程中,逐步添加功能并保持代码简洁,是避免大量错误和...
GCC G++ 编译选项详解手册 本文档对 GCC 和 G++ 编译选项进行了详细的中文解释,提供了 GCC 和 G++ 编译器的使用说明和选项解释。 GCC 和 G++ 编译器是 GNU 工程的 C 和 C++ 编译器,主要用于编译和链接 C 和 C++ ...
以下是选择MinGW gcc编译Python的一些原因: - **自由度更高**:MinGW gcc是一款开源的编译器,相比专有的Microsoft Visual C++,它提供了更多的灵活性和自定义选项。 - **跨平台性**:由于gcc本身是跨平台的,因此...
GCC有超过100个的编译选项可用。这些选项中的许多你可能永远都不会用到,但一些主要的选项将会频繁用到。很多的GCC选项包括一个以上的字符。因此你必须为每个选项指定各自的连字符,并且就象大多数Linux命令一样你不...
GCC编译手册详细介绍了如何使用GCC编译器进行程序编译,包括各种命令选项的使用方法以及与特定编程语言相关的语法、标准和支持的扩展。手册中也包含了有关GCC支持的编程语言标准的信息,例如C语言、C++语言以及...
首先,你需要下载GCC编译工具链,例如基于ARM Cortex-M的GNU Arm Embedded Toolchain。这个工具链包含了GCC、GDB、Make等工具,用于编译和调试STM32代码。 1. **安装GCC编译器**: - 下载并安装GNU Arm Embedded ...