如何用命令行编译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++程序的更多相关文章
- win10 uwp 使用 msbuild 命令行编译 UWP 程序
原文:win10 uwp 使用 msbuild 命令行编译 UWP 程序 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http:// ...
- 使用命令行编译Qt程序
code[class*="language-"], pre[class*="language-"] { color: rgba(51, 51, 51, 1); ...
- 【Qt】命令行编译Qt程序(nmake)【转】
简述 前两节讲解了如何在Visual Studio和Qt Creator中搭建Qt开发环境,并分享了我们第一个小程序-Hello World. 下面分享如何使用命令行来编译Qt程序.当然,MSVC和M ...
- 命令行编译C++程序
使用命令行来编译C++程序,我们可以有两种方法: 方法一: 1. 依次打开开始程序->Visual Studio 2010 –>Visual Studio tool ...
- java 命令行 编译 运行程序
学习java使用IDE前最好先用用命令行的javac.java来跑一跑简单的程序,这样能够熟悉一下包管理对.class文件路径的影响. 我们先写一段简单的代码: package com.csdn.lk ...
- 怎样用命令行编译C#程序
1. 把程序拷贝至记事本 2.另存为*cs格式 3.找到VS2015提供的命令提示 4.要把命令行指向程序所在的目录(可以有个小软件) 如果在其他的盘符,先敲D:,然后再cd 5.输入csc hell ...
- 用cmd命令行编译JAVA程序时出现“找不到或无法加载主类”
今天复习Java基础知识时,使用cmd命令窗口进行编译Java文件发现了如下问题: 网上有很多的解决方法,和问题出现的讨论,以下方法是解决我出现这个问题方式. 解决方式: 重点是圈住的部分. 下面是我 ...
- 命令行编译C程序
1 准备工作 下载mingw-get-setup.exe并且安装 参考 http://www.jb51.net/softjc/159871.html 环境变量更新: PATH .;C:\MinGW\ ...
- 终端命令行编译运行C#程序HelloWorld
终端命令行编译运行C#程序HelloWorld 今天忽然有人问我,刚学习java程序的时候,一般老师都会建议我们从配置环境变量开始从命令行编译运行程序,那么学习c#的时候基本是直接安装visual s ...
随机推荐
- P6122-[NEERC2016]Mole Tunnels【模拟费用流】
正题 题目链接:https://www.luogu.com.cn/problem/P6122 题目大意 给出\(n\)个点的一棵满二叉树,每个点有容量\(c_i\),\(m\)次从\(p_i\)处加一 ...
- ASP.NET Core 中间件的使用(三):全局异常处理机制
前言 我们经常听到"秒修复秒上线",觉得很厉害的样子. 其实不然,这只是一个调侃而已,出现问题的方式很多(逻辑漏洞.代码异常.操作方式不正确等). 我们今天来说代码异常问题怎么快速 ...
- pandas 基础命令
参考链接:https://github.com/rmpbastos/data_science/blob/master/_0014_Boost_your_Data_Analysis_with_Panda ...
- dbus中的数据类型
DBus中也是类似于静态语言,使用了"强类型"数据格式.在DBus上传递的所有数据都需要声明其对应的类型,下面整理了下,DBus中的数据类型,以及在DBus中声明的数据类型是什么意 ...
- Pandas 数据的一些基本操作
一个很偶然的机会,主动出击挑战一个之前没有尝试过的新东西,在做的过程中需要处理一些csv文件的数据,以下是我总结的一些小方法,希望对和我一样的新手朋友们有所帮助,初次尝试,望路过的朋友有更好的方法可以 ...
- Bayou复制分布式存储系统
本文主要参考文献[1]完成. 第1章导读 Bayou是一个复制的.弱一致性的存储系统,用于移动计算环境.为了最大化可用性,Bayou为用户提供了可以任意读写访问的副本.Bayou的设计侧重于为应用程序 ...
- 2021record
2021-10-14 P2577 [ZJOI2004]午餐 2021-10-13 CF815C Karen and Supermarket(小小紫题,可笑可笑) P6748 『MdOI R3』Fall ...
- 洛谷3119 草鉴定(tarjan)
题目大意 约翰有\(n\)块草场,编号\(1\)到\(n\),这些草场由若干条单行道相连.奶牛贝西是美味牧草的鉴赏家,她想到达尽可能多的草场去品尝牧草. 贝西总是从\(1\)号草场出发,最后回到\(1 ...
- WIFI Deauth攻击-爬坑笔记
这里用Aircrack这款工具进行介绍: 准备工作:无线网卡连接电脑或者虚拟机(免驱的最好),如需驱动请自行安装驱动 1.将无线网卡接入测试电脑Linux虚拟机(装有Aircrack-ng) 2.测试 ...
- NX二次开发 克隆
NXOpen.UF.UFSession theUfSession = NXOpen.UF.UFSession.GetUFSession(); try { //初始化 NXOpen.UF.UFClone ...