首先说明一下背景: 为什么要在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. js的Timer方法

    如显示时间: <script> //获取时间 function mytime(){ var a = new Date(); var b = a.toLocaleTimeString(); ...

  2. helm安装 删除

      要安装对应k8s版本的helm https://github.com/helm/helm/releases #wget https://storage.googleapis.com/kuberne ...

  3. Quartz的基本使用之入门(2.3.0版本)

    一.Quartz可以用来做什么 Quartz是一个强大任务调度框架,我工作时候会在这些情况下使用到quartz框架,当然还有很多的应用场景,在这里只列举2个实际用到的 餐厅系统会在每周四晚上的22点自 ...

  4. 生成器yield

    #!/usr/bin/python#coding=utf-8'''Created on 2017年11月23日 from home @author: James zhan ''' def counte ...

  5. Python第一发:Hello world

     #!/usr/bin/python def main () : print 'hello world' main ()

  6. css样式 + 特殊符号

    color控制字体颜色 十六进制值 #cc0066: font-size控制字体大小 单位 px / % / em / rem:像素 / 相对于父级元素 / 取决自己使用字体大小 / 取决于根元素ht ...

  7. linux的简单操作和安装

    1.学习linux,安装的方式在你的windows上安装一个 vmware虚拟化软件(基于它可以安装各种系统) 2.公司中 会提供一个云服务器给你用 服务器ip 123.206.16.61 公网ip账 ...

  8. docker-compose docker启动工具,容器互联

    简介: docker可以一条命令就运行一个配置好的服务器,很是方便. 但是也有一个问题就是,当参数比较多,映射目录比较多,映射端口比较多………… 我以前就是写个脚本,用脚本来启动,很low啊. 也见到 ...

  9. Linux下如何查看tomcat是否安装、启动、文件路径、进程ID

    Linux下如何查看tomcat是否安装.启动.文件路径.进程ID 在Linux系统下,Tomcat使用命令的操作! 检测是否有安装了Tomcat: rpm -qa|grep tomcat 查看Tom ...

  10. css.aa

    出的不同(面是必考) 因为浏览器在解析第二个p的时候,因为字母之间没有空格,他会以为是是一个单词所以不会换行. 列表 1.无序列表ul 第一内部必须含有子标签<li></li> ...