0-15 GCC程序编译

用法:    gcc [...] filenames

例如:    gcc hello.c

输出:    a.out

过程:    hello.c 预变异 hello.i 编译后 hello.s 汇编后 hello.o 链接后 hello

预编译:

        gcc -E hello.c -o hello.i

编译  :

        gcc -S hello.i -o hello.s

汇编  :

        gcc -C hello.s -o hello.o

链接  :

        gcc    hello.o -o hello

文件格式:

*.c    C语言源码

*.h    头文件

*.a    库文件

*.o    目标文件

*.C *.cc *.cpp  C++文件

*.s *.S  汇编文件

gcc编译选项:

-o  指定输出可执行文件

-O  对程序进行优化编译

-O2 对程序更好的编译,消耗更多的时间

-c  只编译不连接,输出*.o目标文件

-g  产生gdb所需要的符号,用于调试

Linux系统头文件一般存放于/usr/include中,若头文件存放在当前目录,引用格式为:

        #include "XXX.h"

或者用-I选项指定头文件存放地方,如:

        gcc -I /root hello.c -o hello

预编译的使用:

#define PRINT

#ifdef PRINT

...

#endif

时间: 2024-08-03 17:16:20

0-15 GCC程序编译的相关文章

000编程基础----GCC程序编译

GNU C Compiler 多平台编译器,是GNU的代表作之一. GCC编译器可以编译链接C\C++\汇编成可执行文件,可执行文件没特殊后缀,看属性. 预处理 编译 汇编 链接 Gcc通过后缀来区分不同类型文件 .c C语言源代码文件 .a库文件 由目标文件构成的库文件 .C .cc .cxx C++源代码文件 .h 头文件 .i 已经预处理过的C源代码文件 .ii 已经预处理过的C++源代码文件 .o 编译后的目标文件 .s 汇编语言源代码文件 .S 经过预编译的汇编语言源代码文件 预处理:

1.GCC程序编译

Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大,性能优越的多平台编译器,是GNU的代表作之一.gcc可以在多个硬件平台上编译出可执行的程序,其执行效率与一般的编译器相比,效率要高20%~30%. GCC编译器能将C,C++语言源程序,汇编程序编译,链接成可以执行文件,在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件.使用GCC编译程序时,编译过程可以被细分为四个阶段: (1)预编译(Pre-Processing) (2)

[国嵌笔记][012][GCC程序编译]

GCC特点 GCC(GUN C Compiler)是GUN推出的功能强大.性能优越的多平台编译器.其执行效率与一般编译器相比平均效率要高20%~30%. GCC基本用法 gcc [options] filenames GCC编译流程 hello.c->预编译->hello.i->编译->hello.s->汇编->hello.o->链接->hello gcc -E hello.c -o hello.i   "-E"表示执行预处理 "

CentOS6.5安装MariaDB10.0.15编译安装和多实例管理配置

CentOS6.5 x86_64 系统 [[email protected] ~]# wget https://downloads.mariadb.org/interstitial/mariadb-10.0.15/source/mariadb-10.0.15.tar.gz/from/http%3A//mirrors.neusoft.edu.cn/mariadb groupadd -r mysql useradd -r -g mysql -s /sbin/nologin mysql mkdir /

X86-64 CPU架构以及64 位GCC对程序编译处理的一些变化

X86-64 CPU架构以及64 位GCC对程序编译处理的一些变化 作者:Jochen1986 转载请注明出处:http://blog.csdn.net/youkawa/article/details/45458921 通用寄存器全部扩展到了64位,寄存器名称前面由R开头,如RAX, RBX, RCX, RDX, RSI和RDI: 指令指针(Instruction pointer).基址指针(base pointer)以及堆栈指针(stack pointer)也全部扩展到了64位,这些专用寄存器

Keil5.15使用GCC编译器编译STM32工程

我们使用Keil一般使用ARMCC编译MCU工程代码.其实,Keil也是支持内嵌GCC编译器的.我们可以使用GCC来编译我们的工程代码. 一.下载GCC编译器 GCC编译器下载地址 二.安装GCC 我们可以把GCC解压到keil的安装目录下面.如下图 三.配置Keil使用GCC编译器 1.配置CC编译规则,Misc Controls 填写 -mcpu=cortex-m4 -mthumb -fdata-sections -ffunction-sections 2.Assembler中规则,Misc

gcc 无法编译c17程序解决办法

1.保证将gcc程序升级到7.1以上. 然后: 还遇到这个问题的基本都是用集成环境的,比如atom,codeblock调用gcc编译,会导致这个问题. 如果用命令行手工编译,命令应该是: "g++" -std=c++17  "text.cpp" -o "text.exe" 这样就能编译成功了. 如果是集成环境,那就在调用插件那里增加这个参数:-std=c++17 以atom的gcc-make-run插件为例: 这样就好了. 原文地址:https:

C程序编译过程浅析【转】

转自:http://blog.csdn.net/koudaidai/article/details/8092647 前几天看了<程序员的自我修养——链接.装载与库>中的第二章“编译和链接”,主要根据其中的内容简单总结一下C程序编译的过程吧. 我现在一般都是用gcc,所以自然以GCC编译hellworld为例,简单总结如下. hello.c源代码如下: ?[Copy to clipboard] C 1 2 3 4 5 6 [c] view plaincopy <span style=&qu

C/C++程序编译运行过程分析(转载)

为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母.符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言.然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序.因为汇编指令和机器语言之间有着一一对应的关系,这可比英译汉或汉译英简单多