如何用命令行编译c++程序

Posted Lin_chun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用命令行编译c++程序相关的知识,希望对你有一定的参考价值。

     作为程序员,如果仅仅只懂得如何在IDE上拖控件写程序,而不知道如何直接通过编译器编译程序的话。虽然说也没啥大不了的,但是如果掌握了手动编译的技能,那肯定会是一种炫技般的存在。从客观的角度来讲,一方面,这种技能帮你在同事或同学面前体现在自己的编程方面的“骨灰级”地位。另一方面,这种脱离了IDE的编译过程在你刷题的时候能帮你摆脱很多IDE上的恼人事故。

     实际上,网上一找,确实有不少这个方面的文章,不过好多都是基于32位的win7或者win8的系统的,很不巧的是,本人的电脑是64位的win10系统。在经历了很多次失后才终于将代码编译跑通。真是一把辛酸泪啊。下面就介绍下如何在64位win10系统中用cmd+notepad进行编译c++程序。

    1)设置环境变量:我们知道,一般的C/C++程序开发经历三个过程:源代码的编辑——编译生成.obj文件——链接生成.exe文件。那么在这个过程中起到关键作用的就是编译器了,也就是我们要找到c++的编译器。如果你已经安装好visual studio的话,那就直接在文件中找就行。如果没有安装相应的安装包,那么我也会介绍另一种方法。先说已经安装VS的情况:找到文件的安装目录底下,如E:\\各种软件的安装目录\\VS2015,具体要看你自己的软件安装目录。而且基本上所有的VS版本,目录的名称都是几乎一致的,所以不用担心安装的版本路径名称会不一致的问题。如果找到的话,你应该能看到:

    找到VC这个文件夹,当然你还能看到VB,VC#等,这些文件夹里包含了相关的语言环境包等,不用管,直接找到VC里的bin文件夹,然后将路径E:\\各种软件的安装目录\\VS2015\\VC\\bin加到系统的环境变量中去。至于环境变量怎么弄的话,找到我的电脑,右键属性,然后找到高级系统设置->环境变量->系统变量->Path,新建一个,然后把路径添加进行就行。

    这样做的目的,其实就是要让系统知道编译器在哪里,因为环境变量就是操作系统执行命令时的默认检索路径。有了这个环境变量的话,我们的电脑就能在指定的文件夹里找相应的文件。例如要寻找a.exe,就直接在命令行中输入a.exe就行,不用再将绝对路径的全部写进去。

    如果你没有安装VS,那么你起码要有VC,如果你说你啥都没安装怎么办,那。。。。。那你还当啥程序员啊。。。。。。反正就是默认已经安装了VC的情况下,找到路径,如D:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin,显然这也是我们需要的编译器的路径。编译程序除了需要编译器外,还需要提供系统库文件.lib,系统头文件。对应的路径在VC98文件夹中有相应的Lib和Include文件夹。下面也是要进行环境变量的设置,为了防止出问题,我们还需要找到VC98同级路径下的Common文件夹里的MSDev98\\Bin,找找看有没有mspdb60.dll文件,如果有的话就直接将其路径,如D:\\Program Files\\Microsoft Visual Studio\\Common\\MSDev98\\Bin和我们的D:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin路径两个都加入到环境变量中。接着我们写一个批处理文件来导入相应的变量。写一个文本如下

INCLUDE = D:\\Program Files\\Microsoft Visual Studio\\VC98\\Include  

LIB = D:\\Program Files\\Microsoft Visual Studio\\VC98\\Lib 

保存为Path.bat,然后运行就行。

 

通过上面的设置,我们在环境变量中加入了编译器的路径,为了测试下是否成功,可以在开始->cmd中输入cl,看看是否有类似的窗口显示

有的话就说明成功了。

 

2)编程程序调试

虽然环境变量设置不太一样,但是上面两种情况的结果是大致一样的,因此下面按着第一种情况,也就是有VS的编译器的配置的时候来进行测试。

打开notepad,写上代码如下:

#include <iostream>

using namespace std;

int main()
{
cout<<"Hellow World"<<endl;
while (1){}
return 0;
}

在任意的一个盘里,如F盘保存为test.cpp。然后打开cmd,输入 vcvars32.bat。接着要转到我们的代码的保存路径下,如F:,这时直接这输入F:

显示如下:

然后输入cl /EHsc test.cpp会出现如下:

哈哈,看到/out:test.exe了有木有。直接打开我们的F盘根文件夹,看看有没有exe文件!运行下:

是不是很有成就感!

 

 

有几点可以稍微注意下:1、只有2009以后的版本,在命令行编译时才需要先执行“vcvars32.bat”,之前的版本就不需要了。

                               2、Visual Studio 2012以前的命令行编译参数一般用cl -GX xxx.cpp,2012以后建议用cl -EHsc xxx.cpp

 

以上是关于如何用命令行编译c++程序的主要内容,如果未能解决你的问题,请参考以下文章

在C++中,如何用不同长度的字符串替换一个命令行参数。

如何用javac 和java 编译运行整个Java工程

如何用ffmpeg截取视频片段&截取时间不准确的坑

Debian如何用命令行安装最新版的LibreOffice?

VC++命令行操作

如何用java启动windows命令行程序