使用MS VS的命令来编译C++程序
以前,我是在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++程序的更多相关文章
- 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 ...
- 如何用命令行编译c++程序
作为程序员,如果仅仅只懂得如何在IDE上拖控件写程序,而不知道如何直接通过编译器编译程序的话.虽然说也没啥大不了的,但是如果掌握了手动编译的技能,那肯定会是一种炫技般的存在.从客观的角度来讲,一方面, ...
- 用cmd命令行编译JAVA程序时出现“找不到或无法加载主类”
今天复习Java基础知识时,使用cmd命令窗口进行编译Java文件发现了如下问题: 网上有很多的解决方法,和问题出现的讨论,以下方法是解决我出现这个问题方式. 解决方式: 重点是圈住的部分. 下面是我 ...
- java 命令行 编译 运行程序
学习java使用IDE前最好先用用命令行的javac.java来跑一跑简单的程序,这样能够熟悉一下包管理对.class文件路径的影响. 我们先写一段简单的代码: package com.csdn.lk ...
- 怎样用命令行编译C#程序
1. 把程序拷贝至记事本 2.另存为*cs格式 3.找到VS2015提供的命令提示 4.要把命令行指向程序所在的目录(可以有个小软件) 如果在其他的盘符,先敲D:,然后再cd 5.输入csc hell ...
- 命令行编译C程序
1 准备工作 下载mingw-get-setup.exe并且安装 参考 http://www.jb51.net/softjc/159871.html 环境变量更新: PATH .;C:\MinGW\ ...
随机推荐
- Selenium WebDriver 2.34.0 发布,支持Firefox22
Selenium WebDriver 2.34.0 发布,支持Firefox22http://automationqa.com/forum.php?mod=viewthread&tid=270 ...
- Python面试题之Python正则表达式指南
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
- Web前端学习笔记之BootStrap
Bootstrap介绍 Bootstrap是Twitter开源的基于HTML.CSS.JavaScript的前端框架. 它是为实现快速开发Web应用程序而设计的一套前端工具包. 它支持响应式布局,并且 ...
- HDU 5703
题意:给你一个数n,问将n分为正整数和的方案数.如n=3共四种,1 1 1 , 1 2 , 2 1 ,3 . 思路:隔板法,n个1,有n-1个空位,每个空位可以选择是否插入隔板,插入k(0<=k ...
- Rancher + K8S RestApi使用
1前言 1.1使用的软件及版本 软件 版本号 Rancher 1.6stable Kubernetes 1.8.3 Docker 1.12.6 1.2 Rancher与K8S的RESTAPI差异 ...
- Hypernetes简介——真正多租户的Kubernetes Distro
http://www.dockone.io/article/838 Hypernetes是一个真正多租户的Kubernetes Distro. Hypernetes在Kubernetes基础上增加了多 ...
- neutron dhcp ha 实验
4个节点(controller, network,2 compute nodes) 1.0 on the network node 1.1 set –I ‘s/start] on/#start\ ...
- java8 日期处理
这两周写业务逻辑,总会有各种日期操作,但是又记不住API,就是记不住API啊 这篇博客不错,记下来 https://lw900925.github.io/java/java8-newtime-api. ...
- shell awk命令
语法: awk '{command}' filename 多个命令以分号分隔. awk 'BEGIN {command1} {command2} END{command3}' 注意:BEGIN , ...
- Java基础13:反射与注解详解
Java基础13:反射与注解详解 什么是反射? 反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性. Orac ...