本文为大大维原创,最早于博客园发表,转载请注明出处!!!

1.网上有大把的这个问题的教程,总结下来,大同小异。尽管不同的vs(vc)版本一些细节处有不同,以vs2010为例,分以下几步:

1.将vs 2010的/vc/bin加入到path中

2.cmd启动

3.vcvars32.bat设置环境为使用vs2010 X86工具

4.cl /Ehsc  XXXX.cpp编译(直接cl亦可)

5.直接调用XXXX.exe运行即可

网上教程一大堆,但我在操作时遇到了几个有意思的问题:

1.刚开始我用vs2015,但在vs2015的/vc/bin中没有cl.exe程序,所以上述方法不适用。我自己鼓捣了老半天也没找到解决的方法,最后放弃vs2015,使用了vs2010。

2.在操作过程中,出现一个有趣的错误:在cmd中键入cl编译(或lib)时会出现mspdb100.dll无法找到的情况。原来这是因为VC\Bin\下没有mspdb100.dll“这个文件,直接从Common7\IDE\下复制这个文件到VC\Bin\下即可。

2.如何观察main返回的错误标识

  Windows 7操作系统并不处理或报告程序返回的错误标识,直观上,返回-1的程序和返回0的程序在执行效果上并无不同。要想查看,一个可行的方法是在控制台窗口执行完程序后紧接着一个echo %ERRORLEVEL%命令。(ERRORLEVEL记录了上一个程序的返回值)

3.cerr、cout、clog的区别

1.cout输出的信息可以重定向,而cerr只能输出到标准输出(显示器)上。

2.cerr不经过缓冲区,直接向显示器输出信息,而cout和clog中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出。

3.cerr和clog均关联到标准错误,但cerr通常写入到与标准输出相同的设备,clog通常写入到一个日志文件中。

4.cerr通常用于输出错误信息或其他不属于正常逻辑的输出内容,clog通常用于报告程序的执行信息。

4.文件结束符

windows中的文件结束符是Ctrl+Z,unix中的是Ctrl+D,然后按Enter或Return。


  

用Windows命令行编译自己的c或者cpp以及一些操作的更多相关文章

  1. Windows命令行参数的知识(一)

    最近没事的时候,准备研究一下Windows命令行参数的知识,因为每次自己在操作电脑时总是效率太慢,如果能够了解Windows参数的一些知识,绝对能提高效率! 基本外部命令和内部命令 首先是基本的知识, ...

  2. 探索Windows命令行系列(7):通过命令编译C#类和Java类

    1.编译 C# 类 1.1.C# 编译工具 1.2.编译一个 C# 类 1.3.编译多个 C# 类 2.编译 Java 类 2.1.Java 编译工具 2.2.编译 Java 类 3.组合命令符 4. ...

  3. 在Windows命令行中编译运行C/C++程序

    此处运行环境是在Windos下,运行cmd命令进入DOS界面 现在有一段简单C++代码(文件名为 demo.cpp),用于计算a*b的值 #include<iostream> using ...

  4. Windows下搭建Android NDK开发环境及命令行编译

    首先说明本文内的相关安装操作参考<Pro Android C++ with the NDK>一书. 安装 Windows搭建Android NDK开发环境需要安装如下部分(同时需要配置对应 ...

  5. windows命令行中java和javac、javap使用详解(java编译命令)

    如题,首先我们在桌面,开始->运行->键入cmd 回车,进入windows命令行.进入如图所示的画面: 可知,当前默认目录为C盘Users文件夹下的Administrator文件夹.一般而 ...

  6. windows下使用命令行编译、链接C++源文件

    目录 1.流程 2.操作 1.流程 .cpp-->.o-->.exe 分别为 源文件-->中间目标文件-->可执行文件 两个-->的过程分别为编译.链接 p.s.多个 . ...

  7. 【转帖】windows命令行中java和javac、javap使用详解(java编译命令)

    windows命令行中java和javac.javap使用详解(java编译命令) 更新时间:2014年03月23日 11:53:15   作者:    我要评论 http://www.jb51.ne ...

  8. Windows下使用命令行编译Qt项目(解决DLL丢失问题)

    一.前言 我之前用Qt做了个hello world,结果各种报错,一大堆DLL找不到,今天用命令行编译就通过了 二.准备工作 1.Visual Studio(有nmake就行) 2.Qt 3.把qma ...

  9. 基于命令行编译打包phonegap for android应用 分类: Android Phonegap 2015-05-10 10:33 73人阅读 评论(0) 收藏

    也许你习惯了使用Eclipse编译和打包Android应用.不过,对于使用html5+js开发的phonegap应用,本文建议你抛弃Eclipse,改为使用命令行模式,绝对的快速和方便. 一直以来,E ...

随机推荐

  1. docker overlay

    http://blog.csdn.net/jiangshouzhuang/article/details/52822125

  2. Redis学习-sorted set数据类型

    sorted set 是有序集合,它在 set 的基础上增加了一个顺序属性,这一属性在添加修 改元素的时候可以指定,每次指定后,会自动重新按新的值调整顺序. zadd key score member ...

  3. MySQL5.7 编译安装

    准备 yum install cmake yum install -y bison yum install -y libaio-devel yum install -y boost 下载 percon ...

  4. 程序员的快速开发框架:Github上 10 大优秀的开源后台控制面板

    程序员的快速开发框架:Github上 10 大优秀的开源后台控制面板 Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者 ...

  5. [C++ Primer Plus] 第6章、分支语句和逻辑运算符(二)课后习题

    一.复习题 3. #include<iostream> using namespace std; void main() { char ch; int c1, c2; c1 = c2 = ...

  6. JAVA基础知识笔记

    1.类只能用Public修饰,不能使用protected.private修饰.也可以不加修饰符,称做友好类. 2.类的实体元素包含成员变量和方法的定义,成员变量分为实例变量和类变量(static修饰的 ...

  7. 一小时学会 C# 6.0

    一.字符串插值 (String Interpolation) C# 6之前我们拼接字符串时需要这样 var Name = "Jack"; var results = "H ...

  8. Python标准模块--concurrent.futures(进程池,线程池)

    python为我们提供的标准模块concurrent.futures里面有ThreadPoolExecutor(线程池)和ProcessPoolExecutor(进程池)两个模块. 在这个模块里他们俩 ...

  9. lnmp或者lamp环境一键安装

    参考网址:https://lnmp.org/install.html 下载并安装LNMP一键安装包: 您可以选择使用下载版(推荐美国及海外VPS或空间较小用户使用)或者完整版(推荐国内VPS使用,国内 ...

  10. android to hide the keybord

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hi ...