刚学C++的时候,一般都会找一个IDE学习编程。记得在学校那会,教学用的编译环境就是vc6.0。不得不说vc6.0真的是很金典,以至于毕业后有段时间还是用的vc6.0。入门的时候直接用IDE编译,能够让我们避免学习很多复杂的编译流程,而专注于语言本身的学习。在vc6.0中配置第三方库的包含目录和库目录都是十分方便的。但这些方便的背后屏蔽了很多复杂的细节,也让我们难以理解背后的原理。所以我想要脱离IDE环境,用命令行编译代码的方式来了解编译连接的一些基础知识。还有一个就是命令行编译代码真的很轻量级,很轻量级。比如你只想快速的写一个test代码,来验证自己的想法,而又不想启动庞大又迟缓的IDE工具时,命令行编译真的是个不错的方式。
命令行编译环境设置
这里命令行下设置编译环境的前提是你的电脑上已经安装了某个版本的IDE(vc6.0或者vs2008之类的)。
我的电脑上安装的是vs2008,所以后面的一些描述都是跟vs2008相关的。设置命令行编译环境也不是必须要安装IDE环境,这里只是为了用IDE环境下包含的编译工具而已,如果你不想安装庞大的IDE也可以单独到网上下载windows编译工具。
下面是命令行使用vs2008编译工具的操作(win10系统下):
找到vs2008的安装路径,并将VC的路径添加到Path环境变量。
例如我电脑上的路径是D:\Program Files (x86)\Microsoft Visual Studio 9.0\VC,判断路径是否正确就看这个目录下是否有vcvarsall.bat这个文件。vcvarsall.bat是后面设置编译环境要用到的批处理脚本。
打开命令框,并验证编译环境是否设置正确。
WIN + R 打开运行框,在运行框内键入cmd,并回车打开命令框。
在命令框内键入“vcvarsall”并回车,如果环境设置正确将有如下文本提示
此时编译环境已经正确设置了。
此时的命令框已经拥有编译环境了,如果重新打开命令框必须再次运行vcvarsall以初始化编译环境。
为了更加便捷,我创建了一个批处理文件,双击打开的时候会自动初始化编译环境。省去了每次都要手动初始化的麻烦。更方便的是双击打开批处理文件后,工作目录就是当前批处理所在的目录。
批处理文件Start.cmd内容如下
@rem 调用vc编译环境脚本
@call vcvarsall
@rem 调用一个子cmd窗口,环境变量将被继承
cmd
编译代码
编写一个全球经典入门例子
//hello.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "hello,world!" << endl;
return 0;
}
文件保存在跟Start.cmd同一个路径下,双击打开Start.cmd批处理文件。
输入命令编译代码:
cl hello.cpp
正常编译后会出现一个hello.exe文件。到这里命令行编译C++代码的过程就结束了。