以前,我是在linux下使用命令或者makefile来编译C++程序的,最近需要在windows上做点测试。于是使用ms VS来作为开发工具,这种大揽全包的IDE确实好用:点一下菜单,编译结果就出来了。可是我的测试需要知道这些编译和连接到底怎样处理的。于是,在网上找了找,自己做了个测试。以下是记录使用ms VS的命令来编译和连接C++程序。备参考。

源代码:

#include <map>

using namespace std;

int main (int argc, char **argv)
{
cout<<__FILE__<<":"<<__LINE__<<"\t"<<__FUNCTION__<<"\tprocess begin at "<<(void*)main<<endl; map<string,int> mpa;
mpa.insert(make_pair("key1",));
mpa.insert(make_pair("key2",));
mpa.insert(make_pair("key3",));
for(map<string, int>::iterator itr = mpa.begin(); itr != mpa.end(); itr++ )
{
cout<<itr->first<<"\t"<<itr->second<<endl;
} cout<<mpa.find("key1")->second<<endl;
mpa.find("key1")->second = ;
cout<<mpa.find("key1")->second<<endl; cout<<"========================"<<endl; map<string,int>::iterator itr = mpa.find("key1");
if (itr != mpa.end())
{
itr->second = ;
}
cout<<mpa.find("key1")->second<<endl;
//下面的程序会core
//cout<<mpa.find("key12")->second<<endl; system("pause"); return ;
}

--编译
cl /c -I"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include" basic_main.cpp

--连接
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\libcpmt.lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\libcmt.lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\oldnames.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\Kernel32.Lib" basic_main.obj

-- 编译和连接同时进行
cl /FA -I"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\libcpmt.lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\libcmt.lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\oldnames.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\Kernel32.Lib" basic_main.cpp

编译后的结果就是在cpp所在的目录有一个basic_main.exe,命令行运行即可。结果略。
根据命令看,是不是和linux下面的操作很像呢?

使用环境变量配置的方式来简化命令

在网上查了另外一种比较简单的使用命令的办法。就是把程序所需要的头文件和库文件,都设置在环境变量里。具体如下:
头文件
INCLUDE="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include"
库文件
LIB="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib";"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib"

然后在打开新的命令行窗口并编译程序:
cl basic_main.cpp
这样,同样可以生成出可执行程序。

使用MS VS的命令来编译C++程序的更多相关文章

  1. win10 uwp 使用 msbuild 命令行编译 UWP 程序

    原文:win10 uwp 使用 msbuild 命令行编译 UWP 程序 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http:// ...

  2. 使用命令行编译Qt程序

    code[class*="language-"], pre[class*="language-"] { color: rgba(51, 51, 51, 1); ...

  3. 【Qt】命令行编译Qt程序(nmake)【转】

    简述 前两节讲解了如何在Visual Studio和Qt Creator中搭建Qt开发环境,并分享了我们第一个小程序-Hello World. 下面分享如何使用命令行来编译Qt程序.当然,MSVC和M ...

  4. 命令行编译C++程序

        使用命令行来编译C++程序,我们可以有两种方法:     方法一:     1. 依次打开开始程序->Visual Studio 2010 –>Visual Studio tool ...

  5. 如何用命令行编译c++程序

    作为程序员,如果仅仅只懂得如何在IDE上拖控件写程序,而不知道如何直接通过编译器编译程序的话.虽然说也没啥大不了的,但是如果掌握了手动编译的技能,那肯定会是一种炫技般的存在.从客观的角度来讲,一方面, ...

  6. 用cmd命令行编译JAVA程序时出现“找不到或无法加载主类”

    今天复习Java基础知识时,使用cmd命令窗口进行编译Java文件发现了如下问题: 网上有很多的解决方法,和问题出现的讨论,以下方法是解决我出现这个问题方式. 解决方式: 重点是圈住的部分. 下面是我 ...

  7. java 命令行 编译 运行程序

    学习java使用IDE前最好先用用命令行的javac.java来跑一跑简单的程序,这样能够熟悉一下包管理对.class文件路径的影响. 我们先写一段简单的代码: package com.csdn.lk ...

  8. 怎样用命令行编译C#程序

    1. 把程序拷贝至记事本 2.另存为*cs格式 3.找到VS2015提供的命令提示 4.要把命令行指向程序所在的目录(可以有个小软件) 如果在其他的盘符,先敲D:,然后再cd 5.输入csc hell ...

  9. 命令行编译C程序

    1 准备工作 下载mingw-get-setup.exe并且安装  参考 http://www.jb51.net/softjc/159871.html 环境变量更新: PATH .;C:\MinGW\ ...

随机推荐

  1. 微信小程序常见问题1----适合新手

    1.本地调试 1)微信小程序填坑之路之使用localhost在本地测试 2)本地代理创建:微信小程序之使用本地接口开发 2.页面跳转 1)页面跳转 2)小程序之间跳转 3.小程序尺寸 1)微信小程序尺 ...

  2. node-inspector使用方法

    开发node.js程序使用的是javascript语言,其中最麻烦的还是调试,这里介绍一下node-inspector使用方法.具体资料可以看参考资料中的GITHUB文档. 方法/步骤   使用命令$ ...

  3. onerror事件

    onerror 事件会在文档或图像加载过程中发生错误时被触发. 案例: <img onerror="this.onerror=null;this.src='/images/common ...

  4. SET 语句积累

    SET IDENTITY_INSERT 表名字 off 注解: 把值插入到自动编号(或者说是标识列,IDENTITY)中去,需要设定 SET IDENTITY_INSERT 语法:SET IDENTI ...

  5. Android平台利用OpenCL框架实现并行开发初试

    http://www.cnblogs.com/lifan3a/articles/4607659.html 在我们熟知的桌面平台,GPU得到了极为广泛的应用,小到各种电子游戏,大到高性能计算,多核心.高 ...

  6. python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件

    python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件 使用qq的邮件服务器需要注意的两个地方主要是: 1.协议问题 使用465端口 SSL 协议 2.口令问题 出现SMTPA ...

  7. PHP-FPM 慢执行日志、网站隔离配置

    慢执行日志 1.配置文件下打开慢执行日志 vim /usr/local/php/etc/php-fpm.conf # 慢执行日志路径 slowlog = /path/to/slow.log # 设置超 ...

  8. PHP 错误日志/安全配置

    PHP 常用配置 /php/bin/php -i | head Loaded Configuration File => /php/etc/php.ini 查看php配置目录 vim /usr/ ...

  9. Go语言学习之运算符(The way to go)

    生命不止,继续go go go 今天介绍go中的运算符. 运算符大概分为: Arithmetic Operators Relational Operators Logical Operators Bi ...

  10. maven中pom.xml标签介绍

    pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以 ...