GCC命令编译

GCC命令编译GCC命令

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1.GCC编译过程(原理如下,使用命令请见2)

从 hello.c 到 hello(或 a.out)文件, 必须历经 hello.i、 hello.s、 hello.o,最后才得到 hello(或a.out)文件,分别对应着预处理、编译、汇编和链接 4 个步骤,整个过程如图所示。

GCC命令编译

 

这 4 步大致的工作内容如下:

(1)预处理,C 编译器对各种预处理命令进行处理,包括头文件包含、宏定义的扩 展、条件编译的选择等,后缀是 .i文件。

test.c是c代码,预处理参数:-E ;另起名称:-o

gcc -E test.c –o test.i     #得到 .i文件

(2)编译,将预处理得到的源代码文件,进行“翻译转换”,产生出机器语言的目标 程序,得到机器语言的汇编文件,后缀是 .s文件。

编译参数:-S

gcc -S test.i   #得到 .s文件

(3)汇编,将汇编代码翻译成了机器码,但是还不可以运行,后缀是 .o文件。

编译参数:-c

gcc -c test.s   #得到 .o文件

(4) 链接,处理可重定位文件,把各种符号引用和符号定义转换成为可执行文件中 的合适信息,通常是虚拟地址,后缀是 .out 文件或者可执行文件

gcc hello.o     #得到 .out文件

2.GCC编译使用命令

最简单使用命令

gcc test.c    #在gcc命令紧跟test源文件名,会有一个 .out 文件
gcc test.c  -o test01.out    #通过 -o 选项来自定义文件名test01.out文件
gcc test.c -o  #/home/user/local/test.out # 在路径/home/user/local/下生成.out文件
./test.out   #运行

参考:

文章一 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182360.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows Azure服务购买,收费,使用注意事项及学习资料推荐

    Windows Azure服务购买,收费,使用注意事项及学习资料推荐近来,QQ群里不少朋友比较关注WindowsAzure,然而又仿佛不知道怎么入手。怎么开始开发,部署这些是技术细节,相信难不倒大家,但是如何购买服务以及收费这些东西确实模模糊糊的。这一方面是因为中文资料太少,WindowsAzure的入口网站也比较模糊,很多人找不到,更重要的是微软还没有正式对大陆开放。据说,曾经微软准备在大陆建一个数据中心,由于某些原因最后选择…

    2022年10月5日
    0
  • androidstudio需要安装jdk吗_android studio怎么配置jdk

    androidstudio需要安装jdk吗_android studio怎么配置jdk我需要javah和android-ndk的帮助。JAVAH找不到类(androidndk)我tryed生成H-文件我的本地方法,但JAVAH说类文件未找到。我的目标类有绝对的名称$PROJECT_DIRECTORY/的src/BT/nativeclient/BtnativeActivity.java,包含跟随代码:packagebt.nativeclient;importandroid.a…

    2022年9月16日
    0
  • 数位DP模板详解

    数位DP模板详解已经很长时间没有做过关于数位 DP 的题目了 现在来写一下自己对于数位 DP 的理解 一般这种题目都是问在区间 l r 内满足某种条件的数有多少 显然我们可以转换为求 0 x 中满足该条件的数有多少 然后利用前缀和思想 直接用 0 r 中满足某种条件的数的个数减去 0 l 1 中满足某种条件的个数即可 这个就不细说了 下面看一下板子 inta N llf N s 第一维一般是当前枚举到的位数 第二位表示状态 具体问题具体分析 lldp intpos 当前枚举到的位 s 代表状态 b

    2025年6月15日
    0
  • 26Region_awing

    26Region_awing给出 n 个点的一棵树,多次询问两点之间的最短距离。注意:边是无向的。所有节点的编号是 1,2,…,n。输入格式第一行为两个整数 n 和 m。n 表示点数,m 表示询问次数;下来 n−1 行,每行三个整数 x,y,k,表示点 x 和点 y 之间存在一条边长度为 k;再接下来 m 行,每行两个整数 x,y,表示询问点 x 到点 y 的最短距离。树中结点编号从 1 到 n。输出格式共 m 行,对于每次询问,输出一行询问结果。数据范围2≤n≤104,1≤m≤2×104,0<k≤1

    2022年8月9日
    2
  • CMD-NET命令详解[通俗易懂]

    CMD-NET命令详解[通俗易懂]本文转自http://www.cnblogs.com/chenjq0717/archive/2010/05/09/1730934.html  net命令大全,net命令用法,net网络命令,net命令使用,net命令集,net命令介绍,net常用命令,net命令的使用技巧,net命令如何使用 大家在操作Windows9X/NT/2000/XP/2003系统的过程中,都会或多或少

    2022年5月8日
    63
  • 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇)

    高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇)本系列导航:高通平台8953 LinuxDTS(DeviceTreeSource)设备树详解之一(背景基础知识篇)高通平台8953 LinuxDTS(DeviceTreeSource)设备树详解之二(DTS设备树匹配过程)高通平台8953 LinuxDTS(DeviceTreeSource)设备树详解之三(高通MSM8953android7.1实例分析篇)一.什么是DTS?为…

    2022年10月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号