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

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. vue使用桌面Element-UI和移动端MintUI的UI框架

    vue使用桌面Element-UI和移动端MintUI的UI框架 element-uiElement - 网站快速成型工具http://element-cn.eleme.io/#/zh-CN 安装:n ...

  2. java之接口文档规范

    一.xxxxxx获取指定任务爬取的所有url的接口 接口名称:xxxxxx获取指定任务爬取的所有url的接口 访问链接: http://IP:PORT/crwalTask/findUrlExcepti ...

  3. nginx配置优化 第二章

    一:常用功能优化: 1:网络连接的优化: 只能在events模块设置,用于防止在同一一个时刻只有一个请求的情况下,出现多个睡眠进程会被唤醒但只能有一个进程可获得请求的尴尬,如果不优化,在多进程的ngi ...

  4. 01:open-falcon入门篇

    open-falcon其他篇 目录: 1.1 openfalcon介绍 1.2 open-falcon架构 1.1 openfalcon介绍返回顶部   openfalcon官网: https://b ...

  5. 最短路径之Bellman-Ford算法的队列优化及邻接表

    参考链接:https://blog.csdn.net/qq_40626497/article/details/81139344

  6. 清除wnTKYg 这个挖矿工木马的过程讲述

    由于工作需要,我由一个专业java开发工程师,渐渐的也成为了不专业的资深的运维工程师了.感慨一番,书归正传,下面就讲解wnTKYg如何清除.最近项目在做性能测试,发现CPU使用率异常,无人访问时CPU ...

  7. #分组背包 Educational Codeforces Round 39 (Rated for Div. 2) D. Timetable

    2018-03-11 http://codeforces.com/contest/946/problem/D D. Timetable time limit per test 2 seconds me ...

  8. MapReduce编程:单词去重

    编程实现单词去重要用到NullWritable类型. NullWritable: NullWritable 是一种特殊的Writable 类型,由于它的序列化是零长度的,所以没有字节被写入流或从流中读 ...

  9. C#设置IE代理

    public class IEProxySetting { public static bool UnsetProxy() { return SetProxy(null, null); } publi ...

  10. DAY11 函数(二)

    一.函数的对象 1.1定义:函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象 1.2函数对象的应用 1 可以直接被引用 fn = cp_fn def fn(): ...