用Windows命令行编译自己的c或者cpp以及一些操作
本文为大大维原创,最早于博客园发表,转载请注明出处!!!
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以及一些操作的更多相关文章
- Windows命令行参数的知识(一)
最近没事的时候,准备研究一下Windows命令行参数的知识,因为每次自己在操作电脑时总是效率太慢,如果能够了解Windows参数的一些知识,绝对能提高效率! 基本外部命令和内部命令 首先是基本的知识, ...
- 探索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. ...
- 在Windows命令行中编译运行C/C++程序
此处运行环境是在Windos下,运行cmd命令进入DOS界面 现在有一段简单C++代码(文件名为 demo.cpp),用于计算a*b的值 #include<iostream> using ...
- Windows下搭建Android NDK开发环境及命令行编译
首先说明本文内的相关安装操作参考<Pro Android C++ with the NDK>一书. 安装 Windows搭建Android NDK开发环境需要安装如下部分(同时需要配置对应 ...
- windows命令行中java和javac、javap使用详解(java编译命令)
如题,首先我们在桌面,开始->运行->键入cmd 回车,进入windows命令行.进入如图所示的画面: 可知,当前默认目录为C盘Users文件夹下的Administrator文件夹.一般而 ...
- windows下使用命令行编译、链接C++源文件
目录 1.流程 2.操作 1.流程 .cpp-->.o-->.exe 分别为 源文件-->中间目标文件-->可执行文件 两个-->的过程分别为编译.链接 p.s.多个 . ...
- 【转帖】windows命令行中java和javac、javap使用详解(java编译命令)
windows命令行中java和javac.javap使用详解(java编译命令) 更新时间:2014年03月23日 11:53:15 作者: 我要评论 http://www.jb51.ne ...
- Windows下使用命令行编译Qt项目(解决DLL丢失问题)
一.前言 我之前用Qt做了个hello world,结果各种报错,一大堆DLL找不到,今天用命令行编译就通过了 二.准备工作 1.Visual Studio(有nmake就行) 2.Qt 3.把qma ...
- 基于命令行编译打包phonegap for android应用 分类: Android Phonegap 2015-05-10 10:33 73人阅读 评论(0) 收藏
也许你习惯了使用Eclipse编译和打包Android应用.不过,对于使用html5+js开发的phonegap应用,本文建议你抛弃Eclipse,改为使用命令行模式,绝对的快速和方便. 一直以来,E ...
随机推荐
- docker overlay
http://blog.csdn.net/jiangshouzhuang/article/details/52822125
- Redis学习-sorted set数据类型
sorted set 是有序集合,它在 set 的基础上增加了一个顺序属性,这一属性在添加修 改元素的时候可以指定,每次指定后,会自动重新按新的值调整顺序. zadd key score member ...
- MySQL5.7 编译安装
准备 yum install cmake yum install -y bison yum install -y libaio-devel yum install -y boost 下载 percon ...
- 程序员的快速开发框架:Github上 10 大优秀的开源后台控制面板
程序员的快速开发框架:Github上 10 大优秀的开源后台控制面板 Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者 ...
- [C++ Primer Plus] 第6章、分支语句和逻辑运算符(二)课后习题
一.复习题 3. #include<iostream> using namespace std; void main() { char ch; int c1, c2; c1 = c2 = ...
- JAVA基础知识笔记
1.类只能用Public修饰,不能使用protected.private修饰.也可以不加修饰符,称做友好类. 2.类的实体元素包含成员变量和方法的定义,成员变量分为实例变量和类变量(static修饰的 ...
- 一小时学会 C# 6.0
一.字符串插值 (String Interpolation) C# 6之前我们拼接字符串时需要这样 var Name = "Jack"; var results = "H ...
- Python标准模块--concurrent.futures(进程池,线程池)
python为我们提供的标准模块concurrent.futures里面有ThreadPoolExecutor(线程池)和ProcessPoolExecutor(进程池)两个模块. 在这个模块里他们俩 ...
- lnmp或者lamp环境一键安装
参考网址:https://lnmp.org/install.html 下载并安装LNMP一键安装包: 您可以选择使用下载版(推荐美国及海外VPS或空间较小用户使用)或者完整版(推荐国内VPS使用,国内 ...
- android to hide the keybord
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hi ...