如何用命令行编译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 ...
随机推荐
- LaTeX bib 引用为 作者 + 年份
将bib文件命名为ref.bib %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% @Description: %%%%%%%% @Version: 1.0 %%%% ...
- div 可编辑--获取光标位置插入元素
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Language" ...
- 获取HTML网页中option标签元素的值
在进行表单元素的操作时,难免会遇到对option元素的挑选,下面的示例代码能够很好的获取到你option元素选择的值,如果要传递给后端,可通过ajax或者其他方式传递即可. 示例代码 <!doc ...
- Linux下iptables学习笔记
Linux下iptables学习笔记 在Centos7版本之后,防火墙应用已经由从前的iptables转变为firewall这款应用了.但是,当今绝大多数的Linux版本(特别是企业中)还是使用的6. ...
- Linux系统安装MySql5.7并通过sql脚本导入数据
为了下载到的MySQL版本和目标系统相互兼容,在开启之前,最好了解目标系统的相关信息. 查询系统版本: cat /etc/issue 查看系统位数 getconf LONG_BIT 选择MySQL 根 ...
- Spring 框架学习
转载自前辈:我没有三个新脏 Spring学习(1)--快速入门 认识 Spring 框架 Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (I ...
- Shell 编程 基础用法
Shell 编程 更改shell脚本权限 chmod u+x shell.sh 标准头部写法 #! /bin/bash #! /bin/dash 变量使用 a=10 print $a 读取命令行参数 ...
- JVM详解(四)——运行时数据区-堆
一.堆 1.介绍 Java运行程序对应一个进程,一个进程就对应一个JVM实例.一个JVM实例就有一个运行时数据区(Runtime),Runtime里面,就只有一个堆,一个方法区.这里也阐述了,方法区和 ...
- 如何在前端通过JavaScript创建修改CAD图形
背景 在之前的博文CAD图DWG解析WebGIS可视化技术分析总结.CAD_DWG图Web可视化一站式解决方案-唯杰地图-vjmap中讲解了如何把CAD的DWG格式的图纸Web可视化的方案,那在Web ...
- 从 MVC 到使用 ASP.NET Core 6.0 的最小 API
从 MVC 到使用 ASP.NET Core 6.0 的最小 API https://benfoster.io/blog/mvc-to-minimal-apis-aspnet-6/ 2007 年,随着 ...