一、gcc和arm-linux-gcc的常用选项

  • 常用选型

    • -v 查看gcc编译器的版本,显示gcc执行时的详细过程

    • -o Place the output into 指定输出文件名为file,这个名称不能跟源文件名同名

    • -E Preprocess only; do not compile, assemble or link

      ​ 只预处理,不会编译、汇编、链接

    • -S Compile only; do not assemble or link

      ​ 只编译,不会汇编、链接

    • -c Compile and assemble, but do not link

      ​ 编译和汇编,不会链接

  • 举例

    //举例一:
    gcc hell.c /* 输出一个a.out,然后./a.out来执行该应用程序 */
    gcc -o hello hello.c /* 输出hello,然后./hello来执行该应用程序(推荐使用这种方式) */ //举例二:
    gcc -E -o hello.i hello.c /* 对hello.c文件进行预处理,获得hello.i文件 */
    gcc -S -o hello.s hello.i /* 对hello.i文件进行编译,获得hello.s汇编文件 */
    gcc -c -o hello.o hello.s /* 对hello.s进行汇编,获得hello.o(OBJ文件)目标文件 */
    gcc -o hello hello.o /* 对hello.o进行链接,获得 hello可执行文件*/
  • 总结

    1)输入文件的后缀名和选项共同决定gcc到底执行那些操作。

    2)在编译过程中,除非使用了-E、-S、-c选项(或者编译出错阻止了完整的编译过程),否则最后的步骤都是链接。

二、从.c文件到可执行文件过程

第七篇:gcc和arm-linux-gcc常用选项的更多相关文章

  1. Ubuntu12.4 64位 安装 arm linux gcc 4.3.2

    一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid ...

  2. Linux vim常用选项

    Vim命令 三种模式 Command Mode 命令模式 Insert Mode 插入模式 Last LineMode 底行模式 底行模式常用命令 :w 保存 :q 退出 :! + 命令 :! ls ...

  3. linux gcc 区分32位或64位编译 && 请问arm存储,是以小端格式还是以大端格式?

    linux gcc 区分32位或64位编译   Linux系统下程序如何区分是64位系统还是32位系统 经过对include的翻查,最后确定gcc以__i386__来 进行32位编码,而以__x86_ ...

  4. 推荐一篇讲arm架构gcc内联汇编的文章

    这是来自ethernut网站的一篇文章,原文链接: http://www.ethernut.de/en/documents/arm-inline-asm.html 另外,据说nut/os是个不错的开源 ...

  5. Linux gcc编译参数

    最近编译一份开源代码,一编译就直接报错.我看了下报错信息,有点诧异.这些信息,放平常顶多就是个warnning而已啊,他这里怎么变成了error呢?我看了下Makefile,发现编译参数多了个-Wer ...

  6. [Linux]gcc/libc/glibc

    转自:http://blog.csdn.net/weiwangchao_/article/details/16989713 1.gcc(gnu collect compiler)是一组编译工具的总称. ...

  7. linux gcc安装

    2004年4月20日最新版本的GCC编译器3.4.0发布了.目前,GCC可以用来编译C/C++.FORTRAN.java.OBJC.ADA等语言的程序,可根据需要选择安装支持的语言.GCC 3.4.0 ...

  8. Linux gcc链接动态库出错:LIBRARY_PATH和LD_LIBRARY_PATH的区别

    昨天在自己的CentOs7.1上写makefile的时候,发现在一个C程序在编译并链接一个已生成好的lib动态库的时候出错.链接命令大概是这样的: [root@typecodes tcpmsg]# g ...

  9. HK32F030MF4P6的Linux GCC工具链和VSCode开发环境

    HK32F030MF4P6简介 航顺的 HK32F030MF4P6, TSSOP20封装, Arm Cortex M0 内核, 内建32MHz时钟, 16K Flash, 2K RAM(实际上可用的有 ...

随机推荐

  1. Sql Server 如何去掉内容里面的Html标签

    DECLARE @str NVARCHAR(MAX)= ' <!DOCTYPE html> <html> <head> </head> <body ...

  2. LeetCode-Maximal Rectangle [学以致用] ZZ

    http://www.cnblogs.com/lichen782/p/leetcode_maximal_rectangle.html 题目: Given a 2D binary matrix fill ...

  3. eclipse 实用快捷键(最全)

    注释: (1)Ctrl+Space  说明:内容助理.提供对方法,变量,参数,javadoc等得提示,  应运在多种场合,总之需要提示的时候可先按此快捷键.  注:避免输入法的切换设置与此设置冲突 ( ...

  4. 【Leetcode】【Medium】Unique Binary Search Trees

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  5. Windows下Redis集群配置

    Redis集群学习地址:http://blog.csdn.net/dc_726/article/details/11694437 Windows-32系统下搭建Redis集群 一.Redis主从同步原 ...

  6. css文本过长如何设置省略号

    对于单行文本: 语法:  text-overflow : clip | ellipsis  参数:  clip : 不显示省略标记(...),而是简单的裁切  (clip这个参数是不常用的!)  el ...

  7. easyui学习笔记3—在展开行内的增删改操作

    这一篇介绍在一个展开行内进行的增删操作,如果一行很长有很多的数据,在一个展开行内进行编辑将更加方便. 1.先看引用的资源 <link rel="stylesheet" hre ...

  8. plus.webview.create mui.openWindow区别是什么呢

      create 只是创建这个webview,但是不显示,而且同一个页面.同一个id你甚至能重复创建多个(严重消耗性能,作死...),其实mui里面已经封装了这个方法 mui.preload(),并且 ...

  9. Kubernetes pod里一个特殊的容器:pause-amd64

    大家在使用Docker容器或者Kubernetes时,遇到过这个容器么?gcr.io/google_containers/pause-amd64 docker ps的命令返回的结果: [root@k8 ...

  10. jemter多种方式查看结果树及正则的使用

    最近才发现jemter结果是有一种正则表达式匹配的显示方式,以前直接在TEXT下显示和来匹配正则,真是费时间,使用方式如下: 默认使用TEXT方式显示: 显示方式有以下几种: RegExp Teste ...