Linux 开发环境搭建与使用——Linux 编译器之 GCC

上一节我们学习了 vim 编辑器,接下来我们一起学习 gcc 编译器,这里,我们要区分编辑器和编译器有何不同?

编辑器是指我用它来写程序的(编辑代码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。就是说,我们用编辑器编写程序,由编译器编译后才可以运行

编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。

GCC(GNU Compiler Collection,GNU 编译器套件),是由 GNU 开发的编程语言编译器。GCC 原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如 Linux、BSD、Mac OS X 等)采纳为标准的编译器,GCC 同样适用于微软的 Windows。

GCC 最初用于编译 C 语言,随着项目的发展 GCC 已经成为了能够编译 C、C++、Java、Ada、fortran、Object C、Object C++、Go 语言的编译器大家族。

这里只是简单介绍如何编译
C 程序或者 C++ 程序最终成为一个可执行程序。

gcc识别的文件扩展名如下:

.c C 语言文件

.i 预处理后的 C 语言文件

.C、.cc、.cp、.cpp、.c++、.cxx C++语言文件

.ii 预处理后的 C++ 语言文件

.S 汇编文件(用户自己新建的汇编文件)

.s 预处理后的汇编文件

.o 编译后的目标文件

.a 目标文件的静态链接库(链接时使用)

.so 目标文件的动态链接库(链接、运行时使用)

gcc 和 g++ 编译器的编译过程

1、预处理

2、编译

3、汇编

4、链接

gcc 常用编译应用实例

分步编译

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_elf

编译选项说明:

-o file指定生成的输出文件名为 file

-E只进行预处理

-S只进行预处理和编译

-c只进行预处理、编译和汇编

文件名后缀说明:

.c C 语言文件

.i 预处理后的
C 语言文件

.s 预处理后的汇编文件

.o 编译后的目标文件

程序编译成功后,通过“./”运行这个可执行程序。

常用编译(还是经过:预处理、编译、汇编、链接的过程):

gcc hello.c -o demo

如果是 C++ 代码,只需改用 g++ 编译器即可。

如果没有 g++ 编译器,在线安装即可:

使用 g++ 编译 c++ 程序:

gcc、g++ 编译的其它一些选项

-v 显示制作gcc工具时的配置命令,显示预处理器、编译器的版本号

-Wall 生成所有级别的警告信息

-w 关闭所有警告,建议不使用此选项

-Idir 将dir目录加入头文件搜索目录列表,优先在dir目录中查找包含的头文件

-Ldir 将dir目录加入库文件目录列表,优先在dir目录中查找库文件

-lname 链接库为name的库

-static 链接时使用静态库

-shared 编译动态库

使用的例子代码下载请点此处。

时间: 2024-08-06 22:21:43

Linux 开发环境搭建与使用——Linux 编译器之 GCC的相关文章

Linux开发环境搭建与使用——Linux必备软件之SSH

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议. SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.常用于远程登录,以及用户之间进行资料拷贝. 利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.SSH 最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台.SSH 在正确使用时可弥补网络中的漏洞.SSH 客户端适用于多种平台.几乎

Linux开发环境搭建与使用——Linux 目录结构及文件

在 windows 平台下,打开"计算机",我们看到的是一个个的盘符: 在 Linux 下,我们是看不到这些盘符,我们看到的是文件夹(目录): 在早期的 UNIX 系统中,各个厂家各自定义了自己的 UNIX 系统文件目录,比较混乱.Linux 面世不久后,对文件目录进行了标准化,于1994年对根文件目录做了统一的规范,推出 FHS ( Filesystem Hierarchy Standard ) 的 Linux 文件系统层次结构标准.FHS 标准规定了 Linux 根目录各文件夹的名

Linux 开发环境搭建与使用——Linux 常用编辑器之vim

概述 vi 编辑器是 Linux 系统中最常用的文本编辑器,vi 在Linux界有编辑器之神的美誉几乎所有的 Linux 发行版中都包含 vi 程序. vi 工作在字符模式下,不需要图形界面,非常适合远程及嵌入式工作,是效率很高的文本编辑器,尽管在 Linux 上也有很多图形界面的编辑器可用,但vi的功能是那些图形编辑器所无法比拟的. 那 vim 又是什么呢? vim 是 vi 的升级版,它不仅兼容 vi 的所有指令,而且还有一些新的特性,例如 vim 可以撤消无限次.支持关键词自动完成.可以用

Linux开发环境搭建与使用——Linux 常用命令的使用

概述 很多人可能在电视或电影中看到过类似的场景,黑客面对一个黑色的屏幕,上面飘着密密麻麻的字符,梆梆一顿敲,就完成了窃取资料的任务. Linux 刚出世时没有什么图形界面,所有的操作全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩. 近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位.可以说不会命令行,就不算会 Linux. Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取

Linux开发环境搭建与使用系列教程

00.Linux开发环境搭建与使用1——Linux简史 01.Linux开发环境搭建与使用2——Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3——通过虚拟机安装系统(ubuntu) 03.Linux开发环境搭建与使用4——ubuntu更新设置 04.Linux开发环境搭建与使用4——Linux必备软件之Samba 05.Linux开发环境搭建与使用5——Linux必备软件之SSH 06.Linux开发环境搭建与使用6——ubuntu如何设置IP 07.Linux开发

Linux开发环境搭建与使用教程

00.Linux开发环境搭建与使用1--Linux简史 01.Linux开发环境搭建与使用2--Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3--通过虚拟机安装系统(ubuntu) 03.Linux开发环境搭建与使用4--ubuntu更新设置 04.Linux开发环境搭建与使用4--Linux必备软件之Samba 05.Linux开发环境搭建与使用5--Linux必备软件之SSH 06.Linux开发环境搭建与使用6--ubuntu如何设置IP 07.Linux开发

嵌入式Linux开发环境搭建

一.制作u-boot.bin文件: tar xjf u-boot-1.1.6.tar.bz2 cd u-boot-1.1.6 patch -p1 < ../u-boot-1.1.6_jz2440.patch make 100ask24x0_config make 二.制作适用于4.3寸屏幕的uImage文件: tar xjf linux-2.6.22.6.tar.bz2 cd linux-2.6.22.6 patch -p1 < ../linux-2.6.22.6_jz2440.patch m

嵌入式linux开发环境搭建(四)——Samba服务器的搭建

嵌入式linux开发环境搭建(四)--Samba服务器的搭建 linux系统:ubuntu Server 12.04 安装流程如下: 1.安装 sudo apt-get install samba samba-common 2.修改配置文件/etc/samba/smb.conf [samba] comment = Samba Server browseable = yes path = /home/samba printable = no writable = yes write list =

嵌入式linux开发环境搭建(五)——Ubuntu第三方软件仓库源

嵌入式linux开发环境搭建(五)--Ubuntu第三方软件仓库源 一般来说ubuntu官方的软件仓库由于服务器在国外,下载更新速度较慢,需要将软件仓库更换为国内镜像点. 1.修改源配置文件 先备份原来的配置文件 mv /etc/apt/sources.list /etc/apt/sources.list.bak vim /etc/apt/sources.list 将国内的Ubuntu镜像点添加到配置文件 Ubuntu 163镜像点: deb http://mirrors.163.com/ubu