`
ipjmc
  • 浏览: 708073 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GCC笔记

阅读更多

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
1
1
分享到:
评论

相关推荐

    cdlinux安装gcc笔记.txt

    cdlinux安装gcc, 操作流程字数补丁, 比较简单没什么好下载的

    GCC 学习 笔记GCC学习笔记

    ### GCC 学习笔记知识点详解 #### 一、GCC简介与版本检查 - **GCC**(GNU Compiler Collection)是一款开源的编译器集合,广泛应用于Linux等类Unix系统上,支持多种编程语言如C、C++等。 - **版本检查**: - 要...

    GCC 使用笔记 linux 编程入门

    ### GCC 使用笔记详解 #### 一、GCC简介与历史 GCC(GNU Compiler Collection)是由Richard Stallman于1984年发起的GNU项目的一部分,旨在为开发者提供一套免费且功能强大的编译工具集。最初,GCC是作为GNU项目中...

    Shell编程笔记,详细完整,值得复习

    这是我的shell编程笔记,我有很多自己的学习笔记,供我以及大家复习使用,还有其他的哦 C语言笔记,java笔记,网页笔记,javaweb笔记,gcc笔记,等,我会慢慢传

    gcc工具链的选项笔记

    gcc工具链的选项笔记 gcc工具链的选项笔记是对GCC编译器的选项进行的详细记录和说明。GCC是 GNU 编译器集合(GNU Compiler Collection)的缩写,是一个自由和开放的编译器套件。GCC可以编译C、C++、Objective-C、...

    JNI笔记(GCC4.4.0编译器)

    本笔记主要围绕使用GCC 4.4.0编译器来实现JNI开发进行详细阐述。 首先,我们需要理解JNI的基本结构。JNI接口定义了一套函数,这些函数由Java虚拟机(JVM)提供,使得本地代码(如C/C++)能够与Java代码进行通信。当...

    GCC的连接脚本学习笔记

    ### GCC的连接脚本学习笔记知识点详解 #### 1. 输入段与输出段的概念解析 在探讨GCC连接脚本之前,首先要明确输入段(input section)和输出段(output section)的概念。 - **输入段**:指的是链接过程中提供的所有...

    nordic52832 nordic使用gcc编译环境搭建资料合集20220506 085836

    5. 编写源代码:使用C或C++编写应用代码,遵循Nordic 52832的数据手册和应用笔记。 6. 编译和链接:使用GCC工具链编译源代码,生成可执行的二进制固件。 7. 下载到硬件:通过JTAG或SWD接口,使用像OpenOCD这样的调试...

    winavr及gcc教程

    1. **avr-gcc学习手记.pdf**:这份文档可能包含了作者在学习和使用AVR-GCC过程中的笔记和心得,可能会涵盖基本的编译流程、命令行选项、链接过程以及常见问题的解决方案。 2. **WinAVR 快速入门.pdf**:这是快速...

    gcc调试器gdb速成笔记

    标题:GCC调试器GDB速成笔记 描述:本文档是根据网上资源和实际使用整理的gdb速成文档,适合于用过一点点gdb而且偶尔用gdb命令行调试的朋友。 知识点: 1. GCC编译与GDB调试: GCC编译器在编译C程序时,使用gcc -g...

    gcc源码总结

    gcc源码总结 gcc源代码的总结主要包括语法树的操作和对程序的解析。以下是gcc源码总结的相关知识点: 1. 语法树的操作: 语法树是gcc编译器中的一种数据结构,用于表示源代码的语法结构。gcc编译器在编译源代码时...

    gcc.rar_gcc

    **GCC配置笔记** GCC(GNU Compiler Collection)是GNU项目的核心组件,它是一个开源的、跨平台的编译器集合,支持C、C++、Objective-C、Fortran、Ada、Go等多种编程语言。这个“gcc.rar_gcc”压缩包很可能是包含了...

    centos 7.2 gcc 包

    GCC,全称GNU Compiler Collection,是GNU项目的一部分,是一个开源的、跨平台的编译器套件,用于将源代码编译成可执行程序。在Linux系统,尤其是CentOS这样的企业级发行版中,GCC扮演着至关重要的角色,因为它是...

    高手笔记 软件开发软件使用笔记

    本文基于“高手笔记 软件开发软件使用笔记”这一资源,详细介绍了如何构建带有内存错误检测功能的 GCC 编译器,以及如何使用 QEMU 虚拟机,这些知识点对于提高软件开发的质量与效率具有重要价值。 首先,我们来看看...

    linux学习笔记.pdf

    本文档主要记录了 Linux 操作系统的学习笔记,涵盖了 Basic 的编程、VI 编辑器的使用、GCC 编译器的应用、GDB 调试工具的使用等方面的知识点。 一、编程基础 * 了解 C 语言的基本语法,例如变量声明、数据类型、...

    朱伟光的gcc.rar

    【压缩包子文件的文件名称列表】:仅有一个文件“朱伟光的gcc.txt”,这个文本文件很可能包含了朱伟光对GCC的详细解释、步骤指南或者是他在教学或实践中总结的笔记。可能是对GCC安装、配置、编译选项、调试工具GDB的...

    考研英语GCC 中文手册.rar J2EE interview book Photo Frame Genius 2.3 破解版 Hiberate Annotation学习笔记 2008年11月份希赛模拟题 multisim 入门帮助文件和元件参数 精通PHP5 光盘源文件 深入理解LINUX 第三版 (英文) 清华大学严蔚敏数据结构(C版)配套光盘 破解万象2008玩免费 jsp学习详细

    考研英语GCC 中文手册.rar J2EE interview book Photo Frame Genius 2.3 破解版 Hiberate Annotation学习笔记 2008年11月份希赛模拟题 multisim 入门帮助文件和元件参数 精通PHP5 光盘源文件 深入理解LINUX 第三版 ...

    达内嵌入式 Linux开发 笔记

    笔记中提到的 gcc 命令选项包括: - -E 选项用于预处理阶段; - -S 选项用于生成汇编代码; - -c 选项用于编译成目标文件,但不进行连接; - -o 选项用于指定输出文件的名称; - -std 用于指定C语言标准; - -Wall ...

    stm32 官方应用笔记

    7. **调试工具和技巧**:学习使用JTAG或SWD接口进行调试,以及如何使用STM32CubeIDE、Keil uVision、GCC等工具链进行开发和调试。 8. **无线连接和物联网应用**:STM32部分型号集成了蓝牙、Wi-Fi等无线模块,应用...

Global site tag (gtag.js) - Google Analytics