一、环境配置
1.  下载安装MinGW

2.  设置环境变量     
      在path变量中,添加路径mingw的路径,如C:\Program Files\MinGW\bin
二、编辑源代码
   Windows命令行使用GNU编译器
     经过上述两步,就可以在在Windows中使用命令行窗口来模拟Linux终端了。
1.  新建 main.c 文件
           通过edit main.c 命令创建并打开编辑main.c文件
         
 
2. 编辑代码
        (ps:这样古朴的界面,您还记得么?)
        
3. 保存并退出
        使用ALT键调出菜单,保存文件后退出。
       
三、编译过程
       编译过程分为四步:预处理、编译、汇编、连接
            
      
1. 预处理
         预处理主要处理源文件中的“#include”、“#define”等预处理等命令
         预处理主要完成的工作有(参考:《程序员的自我修养》):
         (1) 删除 #define,展开宏
         (2) 处理条件编译指令。预处理程序先判断条件,再根据条件修改源代码
         (3) 删除注释
         (4) 添加行号,以及文件名标识。便于调试
         (5) 删除“#include”,插入相应的头文件
        
         使用gcc -E main.c -o main.i 命令,预处理后得到main.i 文件
         
         
  2. 编译
         生成汇编代码的过程。
         使用gcc -S main.i -o main.s 命令,编译后得到main.s 文件
         
         
     
          
3. 汇编
    将汇编代码转化成 机器指令。
    使用gcc -c main.c -o main.o 命令,得到目标文件main.o
       
     
4. 连接
    通过连接库文件,将目标文件转化成可执行文件。
    使用命令 gcc -ld
    一般情况下,我们直接使用gcc main.c -o main就可以生成可执行程序了。
   当然,在Windows下使用gcc时,生成的可执行文件不再是main.out ,而是main.exe文件

转发一篇C++编译器环境搭建的文章的更多相关文章

  1. Hadoop生态圈-Hive快速入门篇之Hive环境搭建

    Hadoop生态圈-Hive快速入门篇之Hive环境搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据仓库(理论性知识大多摘自百度百科) 1>.什么是数据仓库 数据 ...

  2. SpringBoot系列教程web篇之Beetl环境搭建

    前面两篇分别介绍了目前流行的模板引擎Freemaker和Thymeleaf构建web应用的方式,接下来我们看一下号称性能最好的国产模板引擎Beetl,如何搭建web环境 本文主要来自官方文档,如有疑问 ...

  3. SpringBoot系列教程web篇之Thymeleaf环境搭建

    上一篇博文介绍了如何使用Freemaker引擎搭建web项目,这一篇我们则看一下另外一个常见的页面渲染引擎Thymeleaf如何搭建一个web项目 推荐结合Freemaker博文一起查看,效果更佳 1 ...

  4. SpringBoot系列教程web篇之Freemaker环境搭建

    现在的开发现状比较流行前后端分离,使用springboot搭建一个提供rest接口的后端服务特别简单,引入spring-boot-starter-web依赖即可.那么在不分离的场景下,比如要开发一个后 ...

  5. 自动化测试基础篇--Selenium Python环境搭建

    学习selenium python需要的工具: 1.浏览器 2.Python 3.Selenium 4.FireBug(Firefox) 5.chromedriver.IEDriverServer.g ...

  6. 引用 自动化测试基础篇--Selenium Python环境搭建

    原文链接:https://www.cnblogs.com/sanzangTst/p/7452922.html 鸣谢参藏法师. 学习selenium python需要的工具: 1.浏览器 2.Pytho ...

  7. Android开发第1篇 - Android开发环境搭建

    归结一下,需要进行Android开发所需要的工具或软件: Eclipse - Android是基于JAVA的开发,所以选用目前来说使用较高的Eclipse作为IDE. ADT (Android Dev ...

  8. Flink从入门到放弃(入门篇2)-本地环境搭建&构建第一个Flink应用

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...

  9. Hadoop环境搭建|第四篇:hive环境搭建

    一.环境搭建 注意:hive版本不能太高,否则会出现兼容性问题 1.1.上传hive安装包 创建文件夹用于存放hive文件命令:mkdir hive 1.2.解压hive安装包 命令:tar -zxv ...

随机推荐

  1. CSS属性选择符

    属性选择符: E[att] 选择具有att属性的E元素. <style type="text/css"> a[class]{ background-color: red ...

  2. iOS版本更新的App提交审核流程

    App的版本更新估计是在所难免的了!更新App和新的App发布有何不同了?今天我们一起来看看吧!在发布App的时候我们需要通过开发者帐号——(申请)——>发布证书(需要钥匙串对证书签名也叫加密( ...

  3. Topcoder SRM570 900 CurvyonRails

    题意:给定一个网格,一些格子是障碍不用管,剩余的格子是城市,你可以修建铁路,铁路的形状可以是直的或者弯的,也就是说可以以这个点为节点连接它四联通的其中两个方块.要求用一个或多个环来覆盖所有城市.对于有 ...

  4. leetcode6

    好吧,今天晚上赶项目确实是做不了三道题目了,最近项目在网络编程方面有些进步,学到了东西,有时间再积累下来,很深的体会就是,和别人一起写代码,虽然蛋疼但是比自己一个人写要好点,不过发现自己对链表和排序什 ...

  5. jQuery LigerUI V1.2.2 (包括API和全部源码) 发布

    前言 这次版本主要对树进行了加载性能上面的优化,并解决了部分兼容性的问题,添加了几个功能点. 欢迎使用反馈. 相关链接 API:         http://api.ligerui.com/ 演示地 ...

  6. C#中IQueryable和IEnumberable的区别

    IQueryable和IEnumberable的区别主要在查询方面有区别 IQueryable查询时间是先把skip和Take翻译成sql语句,去数据库执行完成后把数据加载到内存中 IEnumbera ...

  7. 同上! 下拉复选框 点击当前的checkbox 选中后面li 添加到指定区域

    (function() { $(".cxbtntj").click(function(){ console.log($("#jsLi1").attr(" ...

  8. Python 3.x 使用csv模块写入数据

    with open(fileName,'w',newline='') as f: self.fileNames = ['timestamp','elapsedtime'] writer = csv.D ...

  9. iOS 页面显示在键盘之上

    美丽又可爱的UED妹子文晓的给我提了一个问题,就是在键盘升起的时候,添加的加载页面(loading)被键盘挡住了. 看到问题之后我就想到了问题的所在,因为以前我可敬可爱的领导给我们科普过,说UIAla ...

  10. shared_ptr:资源管理利器

    如果你还在使用传统的C++,那么可以肯定堆内存的管理让你头痛过!在传统的C++领域,堆内存管理上我们能借用的现成工具就只有auto_ptr.但是很不幸用auto_ptr管理堆内存简直就是个错误.aut ...