gcc的安装

CentOS 版本的可直接运行指令 yum install gcc

gcc基本使用

GNU cc(通常称为gcc)是GNU羡项目的编译器,它能够编译C、C++语言编写程序。
gcc是区分拓展名的,.c文件,gcc就会用c语言的规范去编译,.cpp的文件,gcc就会用c++语言的规范去编译。

  • 使用gcc
    使用gcc,程序员可以对编译过程有更多的控制,编译过程分为3个阶段。
    — 预处理
    — 汇编
    — 链接
  • ios的gcc文件 运行gcc文件_c++

  • gcc的编译和运行
    首先,创建一个Hello.c文件
  • ios的gcc文件 运行gcc文件_c++_02

  • 在命令行中键入命令编译这段程序:
    gcc Hello.c
    gcc在不加任何参数编译的时候,生成的可执行程序名字叫a.out
    gcc -o Hello Hello.c
    这行命令告诉gcc对源程序Hello.c进行编译和链接,并使用参数-o指定创建名为Hello的可执行程序。整个过程是分步进行的,即预编译源代码》》编译目标代码》》链接程序
    (注意:Linux下的可执行程序的拓展名不是.exe,且很多情况下不需要扩展名)
    在命令行中键入命令运行这段程序:
    在当前文件目录下,运行可执行文件用 ./Hello
    图例如下:
  • ios的gcc文件 运行gcc文件_ios的gcc文件_03

  • 预编译
    -E 代表预编译
    gcc -o Hello01.c -E Hello.c
    表示:预编译Hello.c生成一个Hello01.c文件
    预编译就是把#include包含的头文件内容替换到.c或者.cpp文件中;将#define中的宏替换到.c或者.cpp文件中
  • ios的gcc文件 运行gcc文件_可执行程序_04

  • 编译
    -c代表编译
    gcc -o Hello.o -c Hello01.c
    表示:编译Hello.c,但不链接,编译输出到Hello.o文件中
  • ios的gcc文件 运行gcc文件_可执行程序_05

  • 链接
    -命令(没有参数代表链接)
    gcc -o hello hello.o
    表示:链接源程序Hello.o,生成可执行程序Hello
    ldd命令的使用:ldd 可执行程序名称可查看程序调用了什么库
  • ios的gcc文件 运行gcc文件_ios的gcc文件_06

  • 运行事项
  • 如何让Linux在当前目录下寻找可执行程序:
    1、回到宿主目录(直接敲cd命令可回到用户宿主目录)
    2、打开宿主目录下的用户配置文件 “.bash_profile” 在PATH后面追加":.",保存.bash_profile,退出
  • ios的gcc文件 运行gcc文件_预编译_07

  • 3、让修改的配置文件立即生效 . .bash_profile注意两点之间有空格
  • ios的gcc文件 运行gcc文件_c++_08

gcc常用选项

参数

含义

-o filename

输出文件名,如果没有指定filename,默认为a.out

-c

只编译不链接

-E

预编译

-g

包含调试信息

-l

链接指定的库文件

-O

优化编译后的代码

-w

关闭所有警告信息

-Wall

开启所有警告信息

一般编译代码的时候一般加 -Wall参数
想了解gcc的所有选项,可以用man gcc

  • gcc 编译初语言和c++的区别
    对于c语言和c++语言,gcc编译完的目标代码是不同的,最大的区别在于c++会修改编译后的变量以及函数各种标号的名称。
    nm命令的用法:
    nm 可执行程序名称(查看可执行内部的标号,函数名等信息)
    gcc默认路径c的标准库,并不链接c++标准库
    如果要链接c++程序,需要加上参数-lstdc++
    如果编译c语言文件,使用gcc; 如果编译c++语言文件,使用g++;g++是gcc的c++编译器