利用DOS命令编译源文件

来源:互联网 发布:韩国漫画软件下载 编辑:程序博客网 时间:2024/06/05 11:08

命令行编译程序代码,因为编译效率高、不用去研究开发工具,可以使初学者集中精力在代码理解上,因此(命令行+文本编辑器【推荐EditPlus】)非常适合编程学习。但往往由于命令行没有像Visual Studio那么友好的UI界面,加上需要记忆一堆参数,因而让很多没有人指导的新手望而生畏。其实,如果有人稍微指点一下,大家会发现,命令行编译其实非常之简单。如果你是新手,想要学习这方面的东西,那么就看完下面的内容吧。


第一步:安装编译环境

下载并安装Visual Studio,本人安装的Visual Studio 2012


第二步:设置环境变量

1)右键“计算机(我的电脑)”,选择“属性->高级系统设置->环境变量”,找到“系统变量”中的“PATH"属性,双击之

2)复制Visual Studio安装目录下的路径“D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin”到环境变量中(PATH中已经有其它变量,则粘贴到最后面,并且用英文“;”与前面的变量隔开)

新手指导:所谓环境变量,其实就是指操作系统执行命令时的默认检索路径。例如,假设有一个名为a.exe的可执行文件,存放于D盘的myApp目录中,不设置环境变量的情况下,你想从命令行启动a.exe,常规方法有两个:1、用DOS的cd命令进入到D:\myApp目录,然后输入a.exe回车;2、输入D:\myApp\a.exe然后回车。无论是方法1或者是方法2,要运行a.exe我们都需要先告诉系统a.exe在什么地方。我们不能直接在命令行输入a.exe然后回车来运行它,在不确定语境(路径)的情况下,系统不知道a.exe是什么东西,因为名为a.exe的文件可以在不同路径下存在若干个。操作系统不可能去搜索所有目录来弄明白a.exe的含义,一方面性能消耗太高,另一方面因为可能存在多个功能不同,仅仅名字相同的a.exe,因此它无法正确判断用户究竟想要执行哪个a.exe。直接输入a.exe然后回车,我们会看到一个错误提示——“a.exe不是内部或外部命令,也不是可运行的程序或批处理文件。”。如果每次执行a.exe都需要人为去告诉系统a.exe的含义(路径),无疑非常之麻烦,于是就有了系统环境变量这个东西来为我们简化操作。当我们将D:\myApp写到系统环境变量中去之后,再次在命令行中输入a.exe并回车时,操作系统就会自动去搜索环境变量路径下的名为a.exe的可执行程序来执行。以上就是系统环境变量的用途


第三步:修改命令行启动参数

1)在“开始->运行”中输入“cmd”,开始菜单中将列出"cmd.exe",右键它,然后“发送到->发送到桌面快捷方式”

2)右键步骤1)中创建的桌面快捷方式,选择“属性->快捷方式”,找到“目标(T)”栏,修改目标为“C:\Windows\System32\cmd.exe /k vcvars32.bat”,修改好后点确定

新手指导:快捷方式的目标就是双击它时希望打开的程序的完整路径。如果足够细心,你应当会发现,上段文字中的目标路径后面有一串字符“/k vcvars32.bat”,它是用来告诉操作系统,在打开cmd.exe时,传什么参数给它。本文参数的意思是指,在运行cmd.exe后先执行批处理文件“vcvars32.bat”,然后等待用户继续输入。要了解一个可执行程序能接收什么参数和每种参数的意义,你可以用如下方法获取相关信息:在“开始->运行” 对话框中输入可执行程序的名字+ “ /?”。例如,我们要查询cmd.exe可接收什么参数,可以这样写:cmd.exe /? 回车(在命令行中执行程序也可用同样的方法查看程序参数)


第四步:编写test.c程序

1)在F\Visual studio 2010\Hello Word文件夹内新建一个文件夹,命名为HelloWorld.cpp(注意,如果你的系统设置中隐藏了已知文件类型的扩展名,必须显示它,否则你创建的HelloWorld.cpp的真实名字将是HelloWorld.cpp.txt)

2)用记事本或Notepad打开HelloWorld.cpp,在其中写入如下代码:保存之

#include <stdio.h>
int main()
{
     printf("Hello World!");
     return 0;
}

第五步:打开DOS窗口,编译源文件(利用快捷方式DOS框运行,从开始菜单打开貌似有问题)

. 打开DOS命令提示符窗口,进入test.c程序所在的目录,然后输入cl -EHscHelloWorld.cpp 回车,回车,结果如图所示:

                                                               图1  编译成功

编译成功,并生成了两个文件。其中一个为可执行文件HelloWorld.exe

我们可在其目录下直接执行它,结果如上图。

至此,在命令行下编译程序成功实现。

注1:


1.在cmd中键入cl执行编译(或lib)会出现mspdb100.dll无法找到的情况,是因为VC\Bin\下没有mspdb100.dll这个文件,直接从Common7\IDE\下复制这个文件到VC\Bin\下即可解决
2.fatal error c1034:iostream: 不包括路径集
设置环境变量,将lib,include加入
LIB:这个环境变数告诉编译器说,必要的 libraries 在哪里(哪个磁碟目录下)
INCLUDE:告诉编译器说,必要的 header files 在哪里(哪个磁碟目录下)
3.cl编译时出现的warning:warning c4530:使用了C++异常处理程序,但未启用展开语义
加入参数/EHsc,这样可以缩小捕获范围,从而是没必要的异常的消失
4.在VS中报数据库找不到错误,那是要把Common7\IDE\下的mspdb100.dll, mspdbcore.dll, mspdbsrv.exe复制到VC\bin\下


注2:利用DOS命令进入指定文件目录

开始->运行->CMD

2.进入某个磁盘,直接盘符代号:如D:,不用CD 命令切换

3.进入除根录以下的文件夹 cd 文件夹路径 例如我要进入 E:/Program Files/PHP 就

输入 E:回车

  注:  能在一打开CMD的时候运行CD E:/Program Files/PHP,需要先进入磁盘(若一打开CMD的时候运行CD E:/Program Files/PHP,目录不会切换,但在下次输入盘符的时候进入上一次希望进入的目录,如输入E:会直接进入E:/Program Files/PHP)

输入 CD "Program Files"/PHP 回车

  注:如果需要在dos下查看带有空格的文件夹(如Documents and settings,Program files等文件夹),可以有下面两种处理方法:

1、给文件夹加引号。 如C:/>cd c:/"documents and settings"
这样的好处是多长的文件名都可以全部显示出来。

2、由于一般情况下DOS系统只支持8.3格式的文件名,因此在DOS下遇到长文件名的文件夹时,取前面6位,然后在后面加上一个~号和数字1。 你可以输入C:/>cd c:/docume~1 进入Documents and settings文件夹。当截取前面的6个字母之后出现重复时,可以将1改为2,依此类推。

3.进入上一层目录 CD ../

4.显示目录下的文件及了目录 dir 





0 0
原创粉丝点击