Linux系统下gcc命令使用详解

 更新时间:2022年01月04日 08:45:00   作者:lucky_starr  
大家好,本篇文章主要讲的是Linux系统下gcc命令使用详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览

1.gcc的安装(以Ubuntu为例) sudo apt-get install build-essential

安装完后可以通过 gcc --version 查看版本。

让我们在通过gcc编译可执行文件的过程中掌握其基础应用。

准备: 先在当前目录下 使用vim新建一个.c文件 例如 666.c

$ vim 666.c

(vim的使用可在我的另一篇博客有详细的叙述,这里不多在赘述)

插入一段代码。

#include <stdio.h>
main()
{
	int a,i;
	a=6;
	for(i=0;i<3;i++)
	{
		printf("%d",a);
	}
}

  

(每次我们用 cat 查看)

一.预处理

1.预处理通过对宏定义(像#define)进行展开,对头文件(像 stdio.h)进行展开,对条件进行(像ifdef)编译,展开所有宏,删除所有注释(像"//").预处理cpp把源代码,头文件预编成一个.i文件。(注意这时并不检查语法,所以即使有语法错误也不会报错。)

  2.命令:

$ gcc -E (源文件名) -o (预处理文件名)

或者:

$ gcc (源文件名) > (预处理文件名)

  例如按666.c 来说,预处理时可以是 :

  gcc -E 666.c -o 666.i

  也可以是 gcc 666.c > 666.i

二. 编译

   1.编译也就是检查语法是否错误,将预处理过的文件编译成汇编文件。

   2.命令:

$ gcc -S (源文件) -o (汇编文件)

  例如 gcc -S 666.i -o 666.s

三.汇编

1. 汇编也就是将汇编文件生成目标文件(二进制文件)通过汇编,文本代码变成了二进制代码。(二进制代码文件以.o为后缀名)。

2.命令:

$ gcc -c (汇编文件) -o (目标文件)

例如 gcc -c 666.s -o 666.o

(这时候因为是二进制文件了,所以会乱码)

四.链接

1. 链接找到依赖的库文件(静态与动态),将目标文件链接为可执行程序。

$ gcc -c [目标文件] -o [可执行程序] -l[动态库名]

假如没有动态库的话(一般)

直接

$ gcc -c [目标文件] -o [可执行程序] 

例如 gcc -c 666.o -o 666

此时会生成可执行程序 666

如果想执行使用该命令:

$ ./可执行程序

其中./是在当前目录下的意思。

例如 ./666

(注意:在一般我们使用时 如果使用 gcc 可执行文件名,会默认生成a.out 可执行文件,这时我们直接执行它时用 ./a.out )

到此这篇关于Linux系统下gcc命令使用详解的文章就介绍到这了,更多相关Linux gcc命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在 Linux 系统中手动滚动日志的方法

    在 Linux 系统中手动滚动日志的方法

    使用 logrotate 命令可以手动执行日志滚动的操作。本文将要介绍的就是手动进行日志滚动的方法,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-03-03
  • CentOS 7 网络配置详解

    CentOS 7 网络配置详解

    本篇文章主要介绍了CentOS 7 网络配置,现在分享给大家,也给大家做个参考。需要的朋友可以参考下。
    2016-11-11
  • Linux部署jar包过程

    Linux部署jar包过程

    文章介绍了在Linux系统上部署Java(jar)包时需要注意的几个关键点,包括统一JDK版本、添加打包插件、修改数据库密码以及正确执行jar包的方法
    2025-02-02
  • Centos7 mysql数据库安装及配置实现教程

    Centos7 mysql数据库安装及配置实现教程

    这篇文章主要介绍了Centos7 mysql数据库安装及配置实现教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • yum 安装memcache permission denied(拒绝访问) 问题

    yum 安装memcache permission denied(拒绝访问) 问题

    这篇文章主要介绍了yum 安装memcache permission denied(拒绝访问) 问题,需要的朋友可以参考下
    2017-03-03
  • Ubuntu下Subversion(SVN)的快速安装与配置详解

    Ubuntu下Subversion(SVN)的快速安装与配置详解

    这篇文章主要介绍了Ubuntu下Subversion(SVN)的快速安装与配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 在Linux上检查CPU和硬盘温度的方法

    在Linux上检查CPU和硬盘温度的方法

    为了更好地监测您的Linux系统的硬件健康状况,如CPU与硬盘温度、风扇转速等关键指标,采用lm_sensors与hddtemp这两款强大工具是明智之选,以下是关于这些工具的详尽指南,包括它们的功能介绍、安装步骤以及如何配置,需要的朋友可以参考下
    2025-02-02
  • Linux系统下使用U盘的方法

    Linux系统下使用U盘的方法

    在linux系统之中, 一切设备皆文件, 所以我们的U盘也是一个文件.磁盘设备被抽象成sda文件, U盘设备被抽象成sdb文件。这篇文章主要介绍了Linux系统下使用U盘的方法,需要的朋友可以参考下
    2016-10-10
  • ssh远程登陆没有用户名和主机名的解决方法

    ssh远程登陆没有用户名和主机名的解决方法

    这篇文章主要给大家分享了ssh远程登陆没有用户名和主机名的解决方法,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • Linux CentOS7 vim重复行问题

    Linux CentOS7 vim重复行问题

    这篇文章主要介绍了Linux CentOS7 vim重复行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论