GCC 编译流程:
GCC在编译C/C++程序时,会经过一下4步
1.预处理
gcc -E hello.c -o hello.i
2.编译
gcc -S hello.i -o hello.s
3.汇编
gcc -c hello.s -o hello.o
4.链接
gcc hello.o -o hello
一步到位方法:gcc hello.c -o hello
常用的编译选项:
-I dir
Linux中默认的头文件都放在/usr/include目录下,如果用户希望添加其他位置的头文件的时候,需要通过"-I dir"来指定
eg.
gcc hello.c -I /root/workspace/include/ -o hello
-L dir
添加库文件的搜索路径
eg.使用动态库/root/workspace/lib/libsunq.so
gcc hello.c -lsunq -L /root/workspace/lib -o hello
-llib
就像上例中指定链接库,通过-lsunq去链接libsunq.so。这是因为Linux下的库文件在命名时都必须以"lib"开头,所以可以省略这3个字母
有时候编译出来的程序,在运行时找不到动态链接库,我们需要设置一下环境变量LD_LIBRARY_PATH。如:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/workspace/lib
警告提示:
-w 禁止所有警告
-Wunused 警告未使用的变量
-Werror 将警告视为错误
-Wall 显示所有有用的警告信息
eg. gcc -Wall -o hello hello.c
调试:
-g 让gcc在编译时产生调试信息,以便使用gdb调试
-pg 产生额外的代码输出,提供给gprof等工具使用
代码优化:
-On 指定优化级别,n在0到3之间,n越大表示优化越好。-O0表示不优化,-O3表示尽可能的优化。在需要调试的时候,最好不要优化。如果不指定该选项的话,就是-O0
相关推荐
cdlinux安装gcc, 操作流程字数补丁, 比较简单没什么好下载的
### GCC 学习笔记知识点详解 #### 一、GCC简介与版本检查 - **GCC**(GNU Compiler Collection)是一款开源的编译器集合,广泛应用于Linux等类Unix系统上,支持多种编程语言如C、C++等。 - **版本检查**: - 要...
### GCC 使用笔记详解 #### 一、GCC简介与历史 GCC(GNU Compiler Collection)是由Richard Stallman于1984年发起的GNU项目的一部分,旨在为开发者提供一套免费且功能强大的编译工具集。最初,GCC是作为GNU项目中...
这是我的shell编程笔记,我有很多自己的学习笔记,供我以及大家复习使用,还有其他的哦 C语言笔记,java笔记,网页笔记,javaweb笔记,gcc笔记,等,我会慢慢传
gcc工具链的选项笔记 gcc工具链的选项笔记是对GCC编译器的选项进行的详细记录和说明。GCC是 GNU 编译器集合(GNU Compiler Collection)的缩写,是一个自由和开放的编译器套件。GCC可以编译C、C++、Objective-C、...
本笔记主要围绕使用GCC 4.4.0编译器来实现JNI开发进行详细阐述。 首先,我们需要理解JNI的基本结构。JNI接口定义了一套函数,这些函数由Java虚拟机(JVM)提供,使得本地代码(如C/C++)能够与Java代码进行通信。当...
### GCC的连接脚本学习笔记知识点详解 #### 1. 输入段与输出段的概念解析 在探讨GCC连接脚本之前,首先要明确输入段(input section)和输出段(output section)的概念。 - **输入段**:指的是链接过程中提供的所有...
5. 编写源代码:使用C或C++编写应用代码,遵循Nordic 52832的数据手册和应用笔记。 6. 编译和链接:使用GCC工具链编译源代码,生成可执行的二进制固件。 7. 下载到硬件:通过JTAG或SWD接口,使用像OpenOCD这样的调试...
1. **avr-gcc学习手记.pdf**:这份文档可能包含了作者在学习和使用AVR-GCC过程中的笔记和心得,可能会涵盖基本的编译流程、命令行选项、链接过程以及常见问题的解决方案。 2. **WinAVR 快速入门.pdf**:这是快速...
标题:GCC调试器GDB速成笔记 描述:本文档是根据网上资源和实际使用整理的gdb速成文档,适合于用过一点点gdb而且偶尔用gdb命令行调试的朋友。 知识点: 1. GCC编译与GDB调试: GCC编译器在编译C程序时,使用gcc -g...
gcc源码总结 gcc源代码的总结主要包括语法树的操作和对程序的解析。以下是gcc源码总结的相关知识点: 1. 语法树的操作: 语法树是gcc编译器中的一种数据结构,用于表示源代码的语法结构。gcc编译器在编译源代码时...
**GCC配置笔记** GCC(GNU Compiler Collection)是GNU项目的核心组件,它是一个开源的、跨平台的编译器集合,支持C、C++、Objective-C、Fortran、Ada、Go等多种编程语言。这个“gcc.rar_gcc”压缩包很可能是包含了...
GCC,全称GNU Compiler Collection,是GNU项目的一部分,是一个开源的、跨平台的编译器套件,用于将源代码编译成可执行程序。在Linux系统,尤其是CentOS这样的企业级发行版中,GCC扮演着至关重要的角色,因为它是...
本文基于“高手笔记 软件开发软件使用笔记”这一资源,详细介绍了如何构建带有内存错误检测功能的 GCC 编译器,以及如何使用 QEMU 虚拟机,这些知识点对于提高软件开发的质量与效率具有重要价值。 首先,我们来看看...
本文档主要记录了 Linux 操作系统的学习笔记,涵盖了 Basic 的编程、VI 编辑器的使用、GCC 编译器的应用、GDB 调试工具的使用等方面的知识点。 一、编程基础 * 了解 C 语言的基本语法,例如变量声明、数据类型、...
【压缩包子文件的文件名称列表】:仅有一个文件“朱伟光的gcc.txt”,这个文本文件很可能包含了朱伟光对GCC的详细解释、步骤指南或者是他在教学或实践中总结的笔记。可能是对GCC安装、配置、编译选项、调试工具GDB的...
考研英语GCC 中文手册.rar J2EE interview book Photo Frame Genius 2.3 破解版 Hiberate Annotation学习笔记 2008年11月份希赛模拟题 multisim 入门帮助文件和元件参数 精通PHP5 光盘源文件 深入理解LINUX 第三版 ...
笔记中提到的 gcc 命令选项包括: - -E 选项用于预处理阶段; - -S 选项用于生成汇编代码; - -c 选项用于编译成目标文件,但不进行连接; - -o 选项用于指定输出文件的名称; - -std 用于指定C语言标准; - -Wall ...
7. **调试工具和技巧**:学习使用JTAG或SWD接口进行调试,以及如何使用STM32CubeIDE、Keil uVision、GCC等工具链进行开发和调试。 8. **无线连接和物联网应用**:STM32部分型号集成了蓝牙、Wi-Fi等无线模块,应用...