程序的编译过程分为两个阶段:

  • 首先把每个源文件分别编译为目标代码,一般会生成目标文件;然后讲多个目标文件由链接器捆绑在一起,形成一个完整的可执行文件。编译的过程又由几个阶段组成, 首先预处理器处理代码中的#define, #include 等预处理指令。用实际值代替define,读入#include的文件内容。所以头文件不参与编译,源文件会单独编译,然后链接在一起形成程序。
  • gcc 编译链接一个只有一个源文件的程序 : gcc sample.c 生成了一个sample.exe的程序,中间生成一个sample.o的目标文件, 当然也可以同时编译多个源文件,不过在生成可执行文件之后就删除了。gcc -o sample.c 就是将一个源文件单独生成一个目标文件。gcc old.o old2.o main.c 编译链接多个目标文件生成可执行文件。
  • 而这些命令都可以配合GVIM的:!(执行外部shell命令)使用
    比如用gvim写好代码后 在normal模式下(按下<ESC>) :w <ENTER> 保存,:!gcc -o a.c
    就可以生成一个目标文件,并检查编写的错误。很方便。
    当然你要先设置gcc的路径到系统的环境变量里,如果你安装的是mingw的话把他的bin目录加入到系统环境变量里。
    为了方便编写c程序 所以我在gvim的配置文件里加了两句
    set filetype=c
    lcd e:\project 
    这样的话默认生成c文件 和 设置e:\project为默认目录,方便管理

转载于:https://www.cnblogs.com/zourrou/archive/2011/04/05/2006200.html

用gcc gvim编译程序相关推荐

  1. 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。

    在Linux下如何使用GCC编译程序.简单生成 静态库及动态库.   本文适用于Linux下开发初学者.本文初步讲解在Linux下如何使用GCC编译程序.简单生成静态库及动态库. 一.关于安装.一般系 ...

  2. gcc a.c 究竟经历了什么

    link 你知道一次gcc命令究竟经历了什么吗? 我们先来看一段C语言示例源代码: // test.cc #include <stdio.h>int main() {printf(&quo ...

  3. gcc g++ Linux下动态库_静态库

    关于Unix静态库和动态库的分析 基本概念 库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀. 例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在 ...

  4. gcc与g++编译器

    首先在Linux(RHEL7.0)上安装gcc:yum install gcc gcc-c++ -y   其中gcc-c++是为了能够编译c++源代码,即g++. gcc为Linux C/C++下重要 ...

  5. GCC的编译和调试--入门介绍

    编译与调试 1.1编译的概念和理解 在进行C程序开发时,编译就是将编写的C语言代码变成可执行程序的过程,这一过程 是由编译器来完成的.编译器就是完成程序编译工作的软件,在进行程序编译时完成了一系 列复 ...

  6. mips linux gcc mingw,gcc

    一.简介 GCC是以GPL许可证所发行的自由软件,也是GNU计划的关键部分.GCC的初衷是为GNU操作系统专门编写一款编译器,现已被大多数类Unix操作系统(如Linux.BSD.Mac OS X等) ...

  7. C/C++编译器gcc的windows版本MinGW-w64安装教程

    一.什么是 MinGW-w64 ? MinGW 的全称是:Minimalist GNU on Windows .它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包 ...

  8. win10 MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本

    本文转自:https://www.cnblogs.com/ggg-327931457/p/9694516.html 原文没有图片,文字足以说明问题. MinGW-w64安装教程--著名C/C++编译器 ...

  9. Linux后台开发系列之「07.gcc 编译基础」

    gcc 版权声明:本文为 cdeveloper 原创文章,可以随意转载,但必须在明确位置注明出处! 本文摘要 这篇文章主要介绍 gcc 相关的技术,包括以下 8 个方面: gcc 简介 gcc 参数 ...

最新文章

  1. volatile - 如何实现线程安全
  2. Elasticsearch Windows 环境搭建
  3. 服务器负载不高 响应慢_负载均衡有哪几大类别?
  4. Skype for Business Server 2019 本地部署
  5. Xcode 联编系统
  6. Android camera 开发(10)---Camera 硬件介绍
  7. 数学计算机电路基础,2019上“计算机电路基础”作业(五大题共16小题).docx
  8. Python3.2官方文件翻译-工具列表和十进制浮点计算
  9. 无线传感网1-简单介绍
  10. 网站服务器系统组成,linux系统由哪几部分组成_网站服务器运行维护,linux
  11. 关于汇编语言和IL的异同点
  12. 【医疗影像处理】dcm2niix python3 使用
  13. linux Apache2.4安装提示APR not found的解决办法
  14. CVE-2018-0798_微软公式编辑器漏洞分析
  15. 计算机图形学设计线宽代码,计算机图形学线宽和线型处理.ppt
  16. 芯片测试的目的及原理介绍
  17. matlab语言与测绘,MATLAB语言及测绘数据处理应用
  18. WCDMA常见缩略语
  19. JAVA学习日志 关于周易数字卦的一个算法
  20. 虚拟机重启服务器命令,虚拟机中重启命令

热门文章

  1. Android移动开发之【Android实战项目】DAY7-项目结构
  2. 人脸识别技术有哪些新的发展_疫情下,旅游景区人脸识别技术可以应用在哪些场景?...
  3. mapper注解的主要作用_Mybatis中mapper的xml解析详解
  4. oracle10grac创建单实例,Oracle10gLinux单实例迁移到rac
  5. ef 排序string转int_排序算法之基本排序算法
  6. 郑州网络推广浅谈网站首页在优化时都需要注意哪些细节呢?
  7. 网站优化之各个页面的关键词密度的把控
  8. 浅析网站流量出现异常情况应怎样解决?
  9. 网站基本维护躲不过这三点!
  10. python数据分析numpy_利用python进行数据分析-NumPy高级应用