通过命令行使用cl.exe编译器
转载http://www.cnblogs.com/mizhongqin/archive/2013/03/11/cmd_cl-exe_vs2010.html
与在IDE中编译相比,命令行模式编译速度更快,并可以避免被IDE产生的一些附加信息所干扰,下面介绍在Win7 命令行下编译C++。
1、 首先要正确安装Visual Studio 2010,安装路径(D:\Program Files)
2、设置环境变量:
PATH=D:\Program Files\Microsoft Visual Studio 10.0\VC\bin
INCLUDE=D:\Program Files\Microsoft Visual Studio 10.0\VC\include
LIB=D:\Program Files\Microsoft Visual Studio 10.0\VC\lib
2、写一个hello world C++程序
/*the first C++ program*/
#include <iostream>
using namespace std;
//main function
int main()
{
cout<<"Hello world!"<<endl;
cout<<"This is my first C++ program.\n";
}
保存路径 C:\Users\zhongqin.mi\hello.cc
3、重启电脑,打开命令行,执行如下命令

其中,cl是调用编译器的命令,-GX是一个选项,该选项在使用命令行界面编译程序时是必须的。微软编译器自动产生与源文件同名的可执行文件,
这个可执行文件具有.exe后缀且与源文件同名,更多信息可以参考编译器用户指南。
注意:(2015年5月27日15:45:59添加)
在第二步中环境变量的配置中,其实可以不用配置,只是在每次使用cl.exe之前,运行一遍vcvarsall.bat(在“vs安装路径\VC”路径下)即可,运行vcvarsall.bat后,就可以使用cl.exe,link.exe和Nmake.exe,只是每次使用前都要运行一遍vcvarsall.bat,并且只能在运行vcvarsall.bat的cmd窗口才能使用以上三个exe。
4、常见问题
4.1 如果提示找不到mspdb100.dll文件,则从D:\Program Files\Microsoft Visual Studio
10.0\Common7\IDE下拷贝“mspdb80.dll”这四个文件到D:\Program
Files\Microsoft Visual Studio 10.0\VC\bin下即可。
4.2 如果执行 cl命令时遇到提示 LINK : fatal error LNK1104: 无法打开文件“kernel32.lib”, 则把C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib目录下的kernel32.lib拷贝到D:\Program
Files\Microsoft Visual Studio 10.0\VC\lib目录下即可。
--------------------------------------------------------------------------分割线------------------------------------------------------------------------
2015年5月27日16:51:38
如果有多个文件要一起编译连接呢,自己动手做了如下简单的入门体验。
首先创建如下源文件heade.h,header.cpp,main.cpp
//header.h
#ifndef _HEADER_H
#define _HEADER_H class A
{
public:
A();
A(int);
void print();
private:
int member;
}; #endif
//header.cpp
#include "header.h"
#include <iostream>
using namespace std; A::A()
{
member = ;
}
A::A(int init)
{
member = init;
} void A::print()
{
cout << member <<endl;
}
//main.cpp
#include <iostream>
#include "header.h"
using namespace std; int main()
{
cout << "Hello world!\n";
A a();
a.print();
return ;
}
然后按照上面介绍的方法,在cmd中输入:cl main.cpp header.cpp

通过命令行使用cl.exe编译器的更多相关文章
- Notepad++中调用cl.exe编译器(Windows)
Notepad++中调用cl.exe编译器(Windows) 近来在notepad++中写代码,写完后总是习惯性的想去VS里面编译一下,看看代码是否有误.但有时候一些零碎的小文件总是懒得再VS中打开, ...
- 命令行工具aspnet_regiis.exe实现加密和解密web.config
命令行工具aspnet_regiis.exe,是一个类似于DOS的命令工具,称之为命令解释器.使用命令行工具加密和解密web.config文件中的数据库连接字符串时,只需要简单的语法命令即可. 加密语 ...
- 命令行工具osql.exe使用
目标: 快速在21个库修改Test表的某条记录,这几个库都分别在不同的服务器上. 通常会想到,到每个库都执行一下语句不就好了吗?这个数据库切换来切换去,挺麻烦了,通过命令行工具osql.exe就可以快 ...
- PHP命令行执行程序php.exe使用及常用参数
PHP命令行执行程序php.exe参数说明 -f <file>:以命令行方式运行指定的PHP文件,只要指定具体的PHP文件(带绝对路径),php.exe就可以执行PHP文件,所以这个参数单 ...
- MongoDB远程连接-命令行客户端mongo.exe
命令行客户端mongo.exe 位于安装目录bin子目录下.MongoDB的所有可执行程序都在其中. 双击打开mongo.exe应该是默认连接本地数据库服务,因此需要用Cmd或Powershell的方 ...
- microsoft cl.exe 编译器
cl.exe是visual stdio 内置的编译器,visual stdio包含各种功能,有些功能可能这辈子都用不到,体积庞大,如果是 开发比较大或者有图形的项目,vs是首选.更多情况时更喜欢使用文 ...
- 让 windows 下的命令行程序 cmd.exe 用起来更顺手
在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制 ...
- WinRAR命令行版本 rar.exe使用详解
RAR 命令行语法~~~~~~~~~~~~~~ 语法 RAR.exe <命令> [ -<开关> ] <压缩文件> [ <@列表文件...> ] ...
- 80端口未被占用,apache无法启动,命令行运行httpd.exe提示文档内容有错
Apache无法启动,端口被占用的可能性比较大,所以建议大家还是先换端口试试,这个网上说的比较多,具体可参见http://www.cnblogs.com/zdan68/p/3855636.html. ...
随机推荐
- 修改yum源
安装 centos 之后,修改 yum 源到其它国内源 1. 备份原文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Ba ...
- Maven(六)之依赖管理
前面讲了maven一些关于Maven的简单知识,今天我给大家分享一些Maven的依赖管理.我相信用过maven的人都知道,它很重要的功能就是通过依赖来添加jar包. 让我们领略一下Maven是怎么管理 ...
- 编译httpd细节
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- 一个基于Asp.net MVC的博客类网站开源了!
背景说明: 大学时毕业设计作品,一直闲置在硬盘了,倒想着不如开源出来,也许会对一些人有帮助呢,而且个人觉得这个网站做得还是不错了,毕竟是花了不少心思,希望对你有所帮助. github地址:https: ...
- Linux 启动详解之init
1.init初探 init是Linux系统操作中不可缺少的程序之一.init进程,它是一个由内核启动的用户级进程,然后由它来启动后面的任务,包括多用户环境,网络等. 内核会在过去曾使用过init的几个 ...
- BCB中AnsiString类方法小结
AnsiString类是BCB中最常见类之一,了解它对以后深入学习BCB大有帮助. 介绍AnsiString类之前,先要介绍一些背景知识.VCL(Visual Component Library 可视 ...
- 大数据开发 | MapReduce介绍
1. MapReduce 介绍 1.1MapReduce的作用 假设有一个计算文件中单词个数的需求,文件比较多也比较大,在单击运行的时候机器的内存受限,磁盘受限,运算能力受限,而一旦将单机版程序扩展 ...
- strut2-学习笔记(二)
Struts2学习笔记(二) 1. 自定义结果视图的类型(结果视图类型的应用) CAPTCHA图像(随机验证码图像) 实现步骤: (1)编写一个类实现com.opensymphony.xwork ...
- SerialPort如何读取串口数据并显示在TextBox上,多线程委托
namespace SerialPort { public partial class Form3 : Form { delegate void UpdateTextEventHandler(stri ...
- Re-Order Buffer
Re-order Buffer(ROB)是处理器中非常重要的一个模块,它位于renamer与scheduler(RS)之间,并且也是execution unit(EU)的出口.ROB作为指令处理的后端 ...