首先说明一下背景: 为什么要在DOS界面编译C/C++源程序?有很多现成的开发环境(IDE)如:vs, vc++等,这些开发环境集成了编译,调试,使用起来很方便,而且图形化操作界面,简洁明了。但是在开发环境中编译程序,需要建立一个工程,当我只需要编译单个小的测试文件时,比喻 输出helloword!这样的单个小文件,在IDE中编译,仍然需要建立一个工程,这有点麻烦;所以在DOS界面中调用编译器来编译一个单独的C/C++文件,就显得很方便了;

如何在DOS界面中调用 编译器 来编译C/C++源程序?(这里以调用vs2012的编译器 cl.exe 来编译test.c文件为例)

第一种方法:手动设置环境变量 (添加系统变量,使系统能够找到编译器和相应的链接文件)

(注:编辑环境变量时,环境变量的路径最好不要直接复制文字来编辑,这样添加的路径往往无效,最好是新建变量后,点击“浏览目录”添加变量路径)

1,编辑系统变量PATH,在后面加入(每个变量后面要用;隔开)
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin    (引入cl 编译器)
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE (引入mspdb100.dll文件,如果不加这个路径到系统变量中,也可以直接将mspdb100.dll文件复制到上面那个路径的文件夹下)
 

2,新建环境变量

INCLUDE: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include (告诉系统include文件的位置)
 
3,新建环境变量
LIB:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib (告诉系统lib库文件的位置)
 
4,打开cmd窗口, 进入cpp文件目录,如:cd C:\users\dell\Desktop, 然后输入命令 cl test.c 运行,可能会提示如下错误:

“LINK:fatal error LNK 1104:cannot open file 'kernel32.lib“ ;

解决办法: kernel32.lib是Windows系统文件,此文件在文件夹C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib 中,将其复制到C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib 中;

5,再输入命令 cl test.c 运行,会提示生成 test.exe, test.obj 文件,然后输入test.exe 运行,就能输出结果了
 
第二种方法:运行批处理文件 .bat 代替手动设置环境变量 (这里就显示了批处理文件的作用了)
 
1,可以自己用记事本写一段简单的批处理文件.bat, 其内容就是设置环境变量,如下:
set path=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin;C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE
set include=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include
set lib=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib
 
如果不会写,可以直接运行vs提供的批处理文件vcvarsall.bat (文件位置:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\目录下)
打开cmd窗口进入文件所在目录:cd C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC,然后输入文件名 vcvarsall.bat 运行;(每次关闭dos后,再打开,都要运行一次)
 

2,运行完  vcvarsall.bat 后,环境变量设置完成,再进入test.c 所在目录 cd C:\users\dell\Desktop, 然后输入命令 cl test.c 运行,会提示生成 test.exe, test.obj 文件,再输入test.exe 运行,就能输出结果了

 
 
 

如何在Windows命令行(DOS界面)中调用 编译器 来编译C/C++源程序的更多相关文章

  1. Windows命令行(DOS命令)教程 -1 (转载) http://www.pconline.com.cn/pcedu/rookie/basic/10111/15325.html

    一.命令行简介 命令行就是在Windows操作系统中打开DOS窗口,以字符串的形式执行Windows管理程序. 在这里,先解释什么是DOS? DOS--Disk Operation System 磁盘 ...

  2. Windows命令行(DOS命令)教程

    一.命令行简介 命令行就是在Windows操作系统中打开DOS窗口,以字符串的形式执行Windows管理程序. 在这里,先解释什么是DOS? DOS——Disk Operation System 磁盘 ...

  3. Windows命令行(DOS命令)教程–2 (转载) http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_1.html

    二.符号约定 为了便于说明格式,这里我们使用了一些符号约定,它们是通用的: C: 盘符 Path 路径 Filename 文件名 .ext 扩展名 Filespec 文件标识符 [ ] 方括号中的项目 ...

  4. Windows命令行(DOS命令)教程-8 (转载)http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_7.html

    15. pass [功能] 设定DOS寻找.COM..EXE..BAT文件的所在目录 [格式] path=[[drive:]path[;-]]或path [说明] 只打path没有参数时,只显示环境变 ...

  5. Windows命令行(DOS命令)教程-7 (转载)http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_6.html

    11. deltree [功能] 删除目录树 [格式] [C:][path]DELTREE [C1:][path1] [[C2:][path2] […]] [说明] 这个命令将整个指定目录树全部消灭, ...

  6. Windows命令行(DOS命令)教程-3(转载)http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_2.html

    五.常用命令 DOS命令总共大约有一百个(包括文本编辑.查杀病毒.配置文件.批处理等),我们这里详细介绍二十个常用的DOS命令. 先介绍一下通配符的概念. 通配符*和? *表示一个字符串 ?只代表一个 ...

  7. Windows命令行(DOS命令)教程-5 (转载)http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_4.html

    5. copy copy在英文中是复制的意思 [功能] 复制一个或一组文件到指定的磁盘或目录中 [格式] copy [C:][path][filename.ext] [C:][path]filenam ...

  8. Windows命令行(DOS命令)教程-6 (转载)http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_5.html

    8. type [功能] 在屏幕上显示文本文件内容命令 [格式] type [C:][path]filename.ext [说明] type命令用来在屏幕上快速.简便地显示文本文件的内容,扩展名为TX ...

  9. Windows命令行(DOS命令)教程-4(转载)http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_3.html

    2. md md是英文make directory(创建目录)的缩写 [功能] 创建一个子目录 [格式] md [C:]path [举例] 用md 建立一个叫做purple的目录 3. cd cd是英 ...

随机推荐

  1. L0 Regularization

    参考: Learning Sparse Neural Networks through L0 Regularization The Variational Garrote

  2. 使用pandas的部分问题汇总

    pandas(我所用版本0.17)是一个强大数据处理库,在开发金融类系统中我应用到了pandas.Dataframe数据类型,它的数据结构类似一张图表(如下图所示),左边一列为index既行的索引: ...

  3. 如何从零开始在github上新建项目

    准备工作: (1)安装git: Git-2.16.1-64-bit.exe (2)新建一个文件夹grpc007,作为本地git仓库 (3)进入到grpc007目录,右键/打开git bash.使用gi ...

  4. 出现Unable to locate appropriate constructor on class 错误可能的原因

    1)参数构造器的参数类型是否正确2)参数构造器的顺序和hql中的顺序是否一致3)参数构造器的参数个数是否和hql中的个数一致4)参数构造器的参数类型是否TimeStamp

  5. poj 3254Corn Fields (入门状压dp)

    Farmer John has purchased a lush ≤ M ≤ ; ≤ N ≤ ) square parcels. He wants to grow some yummy corn fo ...

  6. inline元素、block元素、inline-block元素

    inline 内联元素:是不可以控制宽和高.margin等:并且在同一行显示,不换行,直到该行排满. block 块级元素:是可以控制宽和高.margin等,并且会换行.块级对象元素会单独占一行显示, ...

  7. Quartz定时器+Spring + @Autowired注入 空指针异常

    在Quartz的定时方法里引用@Autowired注入Bean,会报空指针错误 解决办法: 第一种方法:(推荐,简单,亲测可行) 使用@Resource(name="指定要注入的Bean&q ...

  8. ES6新特性,对象的快速创建

    //es6对象快速赋值 //es5对象赋值 var name="xiaoming"; var age=18 var person={ name:name, age:age } co ...

  9. lua调用方法错误

    self.sendMsg(json.encode(info),) self:sendMsg(json.encode(info),) 两个符号就差了一个点,引发的问题确实app崩溃,在这个方法中传的参数 ...

  10. 学号 20175223 《Java程序设计》第2周学习总结

    学号 20175223 <Java程序设计>第2周学习总结 教材学习内容总结 第二章要点: 要点1:标识符与关键字 要点2:基本数据类型:逻辑类型boolean,整数类型int|byte| ...