一、文件的编译
    gcc 文件名

c文件类型
    .h ——头文件
    .h.——gch 头文件的编译结果,与头文件同时存在时,会被优先使用
    .c ——源文件
    .i ——预处理文件
    .s ——汇编文件
    .o ——目标文件
    .so ——共享库
    .a ——静态库

二、编译器
  负责把人能看懂的用代码记录的文本文件,翻译成计算机能看懂的二进制文件
  由预处理器、编译器、链接器
  gcc是由gnu社区为了编译Linux内核代码而开发一款免费的编译器,默认采用c89编译语法
  -std=gnu99 可以设置为C99语法

1、gcc code.c  -> a.out(默认可执行文件名)
    常用参数:
        -E 显示出预处理结果
        -S 生成汇编代码
        -c 只编译不链接
        -o 设置编译结果的名字
        -std= 设置编译语法
        -I(大写i) 路径  指定头文件的加载路径  
        -l 指定要使用的库文件  例: -lm
        -Wall  更严格地检查代码,尽可能多地产生警告
        -Werror  把警告当错误处理

2、 c代码源文件变成可执行文件的过程:
    预处理:把源文件翻译成预处理文件
        gcc -E code.c   把预处理结果打印到终端
        gcc -E code.c -o code.i 生成以.i结尾的预处理文件
    编译:把预处理文件翻译成汇编代码
        gcc -S code.i 生成以.s 结尾的汇编文件
    汇编:把汇编文件翻译成二进制的目标文件
        gcc -c code.s  生成以.o 结尾的目标文件
    链接:把若干个目标文件合并生成一个可执行文件
        gcc a.o b.o ……  默认生成a.out 可执行文件
        gcc a.o b.o …… -o newname 指定生成别名的可执行文件

Linux下文件的编译相关推荐

  1. PHP编译为静态库,Linux下将Tinyxml编译为静态库

    转载请注明来源:Linux下将Tinyxml编译为静态库 一个应用需要在linux服务器上运行,不能保证每个服务器都有应用依赖的库,又懒得每个服务器都去安装下,也不太现实,于是就将应用所用到的库全部编 ...

  2. linux下文件描述符的介绍

    linux下文件描述符的介绍 (2012-10-02 16:01:56) 转载▼ 标签: 描述符 调用 返回 进程 限制 it 分类:linux 当某个程序打开文件时,操作系统返回相应的文件描述符,程 ...

  3. vc6可编译的 linux 源码,Linux 下源码编译FFMEG

    1. 安装依赖关系 $ sudo apt-get update $ sudo apt-get -y install autoconf automake build-essential libass-d ...

  4. automake linux,Linux下automake软件编译与发布快速入门

    Linux下automake软件编译与发布快速入门 2008-04-22 eNet&Ciweek 进入编辑界面,输入内容如下: AUTOMAKE_OPTIONS=foreign bin_PRO ...

  5. linux ortp 编译,Linux下oSIP的编译使用应该是很简单的,其Install说明文档.doc

    Linux下oSIP的编译使用应该是很简单的,其Install说明文档.doc Linux下oSIP的编译使用应该是很简单的,其Install说明文档里也介绍的比较清楚,本文主要就oSIP在Windo ...

  6. Linux下文件加密方法总结

    Linux下文件加密方法总结 为了安全考虑,通常会对一些重要文件进行加密备份或加密保存,下面对linux下的文件加密方法做一简单总结: 方法一:gzexe加密 这种加密方式不是非常保险的方法,但是能够 ...

  7. linux下目标文件的类型6,Linux下文件类型

    Linux下文件的类型是不依赖于其后缀名的,但一般来讲: .o,是目标文件,相当于windows中的.obj文件 .so 为共享库,是shared object,用于动态连接的,和dll差不多 .a为 ...

  8. linux下文件夹归置方式

    /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录的基点,比如用户user的主目录就是/hom ...

  9. windows和linux下源码编译7-Zip(7za)

    windows和linux下源码编译7-Zip(7za) 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 windows和l ...

最新文章

  1. GNS3模拟VPC注意几点
  2. js 如何实现bind
  3. 深入浅出Android BufferQueue
  4. 多线程编程(4) - 多线程同步之 Mutex (互斥对象)
  5. JavaWeb网上图书商城完整项目--day02-14.登录功能的login页面处理
  6. oracle如何设置备份计划任务,Oracle数据库设置任务计划备份一周的备份记录
  7. ue4 classuobject没有成员beginplay_UE4 C++ 智能滚动列表ScrollList
  8. 安装SQL2005出现服务器启动失败或者安装后启动服务器失败的原因及解决方法
  9. 慕课网vue播放器最新QQ音乐api
  10. 积分图的SSE和AVX2优化
  11. 中医药天池大数据竞赛——中医文献问题生成挑战(二)
  12. 蓝牙软件测试指标,蓝牙测试简介
  13. linux 创建 swap分区
  14. unity3d技术摄像头跟随_unity 3d 中摄像头跟随人物移动总结
  15. [F2F] MyBatis相关面试题
  16. 300道SpringCloud面试题及答案(最新整理)
  17. 计算机的未来发展趋势
  18. 地震波ifft matlab,地震波观测系统的MATLAB仿真报告
  19. PTA -- 旅游规划
  20. 根据交换机端口分配固定地址的方法

热门文章

  1. msp430单片机点亮第一个灯
  2. selenium 配置 360极速浏览器(支持NPAPI)
  3. 透明颜色代码 和 一键分享问题
  4. 【附源码】计算机毕业设计SSM-农产品销售平台
  5. 提高阅读速度的一个小窍门 (Want to Read Faster? )
  6. Mac 硬件驱动 kext 安装方法
  7. C#实现二维码扫码登录
  8. Vue Cli 3项目 使用融云IM实现聊天功能
  9. 第一单元:连续时间信号与离散时间信号
  10. Docker自动部署Apache Tomcat