如何用命令行编译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

时间: 2024-08-24 04:27:26

如何用命令行编译c++程序的相关文章

java 命令行 编译 运行程序

学习java使用IDE前最好先用用命令行的javac.java来跑一跑简单的程序,这样能够熟悉一下包管理对.class文件路径的影响. 我们先写一段简单的代码: package com.csdn.lkasdolka; public class test_1{ public static void main(String[] args){ for(int i = 0; i < 10; ++i ){ System.out.println(i); } } } 写好后保存为test_1.java,win

命令行编译C++程序

    使用命令行来编译C++程序,我们可以有两种方法:     方法一:     1. 依次打开开始程序->Visual Studio 2010 –>Visual Studio tools –>Visual Studio命令提示,打开后,它会自动设置相关环境变量,我们就可以使用cl.exe来编译单个C/C++程序.      如下图所示:          在dos下,使用cd 命令,切换到目标文件所在目录进行编译即可.    方法二:    1. 打开普通cmd窗口      1.1

命令行编译VC程序

命令行下编译C++代码,需要设置编译环境,分别是:头文件,库文件,以及编译器cl.exe以及连接器link.exe的位置. 1)简单方式,打开VS05,点击Tools,选择Visual Studio 2005 Command Prompt,这个时候就已经配置好编译的环境. 测试:尝试输入cl 或者link(exe后缀可省略),如果能够显示cl的命令参数表明设置成功,可以开始编译.失败提示:'cl'不是内部或外部命令,也不是可运行的程序或批处理文件. 2)找到vcvarsall.bat批处理,然后

javac java 命令行编译运行程序

参考自:http://blog.csdn.net/xxyyww/article/details/5784803 前言: 在命令行运行JAVA的时候,要做的事情就不是点一下鼠标就可以了.如果再用到第三方JAR包,命令就更长了.一个比较好的方法就是使用ant,不过我发现一个问题,在命令行中使用ant的时候,它的输入和eclipse的console一样蛋疼.比如: Scanner in = new Scanner(System.in); System.out.println("请输入一个整数:&quo

windows下如何配置实现命令行编译c++程序

大家知道在linux下编译c++代码的那种命令式的编译方式,想不想在windows下实现这样的功能?今天我就使用了我的windows台式电脑和笔记本电脑实现了这样的命令式的c++代码的编译. 首先你需要的工具就是: 1. 一台windows下的电脑(当然是安装了c++编译器的电脑) 2. 下载安装一个文本编辑器的软件(比如notepad等等) 下面是实现这样的功能的具体的步骤: 1. 首先要对系统的环境变量进行设置(具体环境变量的设置方式可以百度),主要的环境变量有三个:Lib,include,

使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0

使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0 网上的 MapReduce WordCount 教程对于如何编译 WordCount.java 几乎是一笔带过… 而有写到的,大多又是 0.20 等旧版本版本的做法,即 javac -classpath /usr/local/hadoop/hadoop-1.0.1/hadoop-core-1.0.1.jar WordCount.java,但较新的 2.X 版本中,已经没有 hadoop-core*.jar 这个文件,因此

Cmd命令行编译c#文件

使用命令行编译C#文件的方法: 首先,在系统变量的Path变量中添加csc.exe文件路径 路径大概是这个样子:C:\Windows\Microsoft.NET\Framework64\v4.0.30319;  (.net版本也许不同) 在cmd中输入csc.exe验证是否成功. cs文件生成exe文件:(若要编译生成EXE文件则源文件中需包含main 方法) csc /out:file.exe  file.cs       //使用 /out 指定输出的文件 如果编译的stu.cs 和 fil

命令行编译的一点碎碎念

自学习C/C++以来,接触到很多很强大的库,例如opencv,boost等等,但相关的范例和教程书,都提倡在电脑上安装这些库,在一定程度上我是很讨厌这么干的,而是提倡使用命令行编译生成可执行文件,在命令行中注明头文件的位置和库文件的位置. 这么做一方面透明性高,自己在编译时知道使用了什么库,什么头文件,很方便debug. 二来,可以提高可移动性,如果将opencv库编译成链接库文件,安装在/usr/libs/文件夹下,linux系统编译我们的源程序时,自然能够找到这些头文件和库文件,因为这是li

namke 命令行编译

简介 大家已经习惯于微软提供的功能强大的IDE,已经很少考虑手动编连项目了,所谓技多不压身,有空的时候还是随我一块了解一下命令行编译. C/C++/VC++程序员或有Unix/Linux编程经验应该很熟悉,以前我曾写过一篇文章描述用csc/vbc来进行命令行编译,今天再介绍一下MS提供的更加快捷有效的编译工具NMake. MSDN的描述: Microsoft 程序维护实用工具 (NMAKE.EXE) 是一个 32 位,基于说明文件中包含的命令生成项目的工具. NMake具有丰富的选项,可以完成复