从命令提示窗口使用 Visual C++ Toolkit 2003

从命令提示窗口使用 Visual C++ Toolkit 2003
发布日期 : 12/20/2004 | 更新日期 : 12/20/2004
Brian Johnson
MSDN Visual C++ 内容战略家

适用于:
Visual Studio .NET 2003
Microsoft Visual C++ .NET 2003
Microsoft Visual C++ Toolkit 2003

摘要:在本文中,Brian Johnson 描述了如何从命令行使用 Visual C++ Toolkit 2003 随附的 Microsoft Visual C++ 编译器。本文适用于以前从未使用过命令行编译器的初学者。

设计 Visual C++ Toolkit 2003 软件包的目的是,使开发人员能够通过 Visual Studio .NET 2003 随附的完全优化编译器来生成和测试应用程序。该软件包不是该产品完整版本的替代品;相反,它是一个使您能够评估和探索优化编译器的子集。此外,它使您能够生成适于学术研究的小型应用程序。我撰写本文的目的是,帮助刚刚接触 C++ 的读者了解如何从命令行使用 Visual C++ Toolkit 2003 编译器来生成简单的应用程序。

Visual C++ Toolkit 2003 不包含任何种类的 IDE,因此您需要按照旧方式使用编译器,通过文本编辑器和命令提示窗口来生成应用程序。在本文中,我将概述通过 Visual C++ Toolkit 2003 并且只使用记事本和命令提示窗口生成和运行应用程序时所需要采取的步骤。

首先,您需要安装 Visual C++ Toolkit 2003 软件包。我们具有一个工具包主页 (http://MSDN.microsoft.com/visualc/vctoolkit2003),它提供了指向下载中心页的链接。请访问该页,下载并安装编译器。为了帮助您开始工作,您还可以查找相关文章和常见问题列表。

在安装该工具包之后,您将在 Start 菜单中找到一个新的 Visual C++ Toolkit 2003 文件夹。该菜单包含一个指向 Visual C++ Toolkit 2003 自述文件的链接,并包含一个指向 Visual C++ Toolkit 2003 命令提示窗口的快捷方式。我们将完成从该快捷方式到命令提示窗口的所有工作,因此现在请继续操作,单击并打开它。

Visual C++ Toolkit 2003 命令提示窗口设置了很多通过该编译器生成应用程序所需的路径和选项。编译器需要的关键设置包括:

Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;%PATH%
Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;%INCLUDE%
Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;%LIB%
这些设置将 Visual C++ Toolkit 2003 的路径放在 PATH 变量的开头。同样,INCLUDE 变量设置了该工具包随附的头文件的路径,而 LIB 变量设置了该工具包随附的库文件的路径。头文件声明库文件中提供的函数,并且使它们可以从应用程序中访问。在本文中,我不会讨论太多这方面的内容,但是您可以在本文结尾找到一些用于学习 C++ 的推荐书籍。

Microsoft C++ 命令行编译器名为 CL.EXE。要使用该工具编译 C++ 应用程序,您通常要使用文本编辑器(例如,记事本)编写应用程序,用扩展名 .cpp 保存该文件,然后调用该编译器,并传递您要编译的文件的名称作为参数。现在,让我们继续执行该工作。

按照惯例,在学习语言时生成的第一个应用程序是 Hello World。这是一个简单的应用程序,它将单词“Hello World!”输出到命令提示窗口。标准的 C++ Hello World 应用程序应如下所示:

#include <iostream>
using  namespace std;

int main()
{
   cout << "Hello World! \n";
   return 0;
}
Hello.cpp

要测试这点儿代码,请通过在 Visual C++ Toolkit 2003 命令提示窗口中键入以下内容来创建一个新的文件夹:

mkdir Hello
通过键入以下内容导航到 Hello 文件夹:

cd Hello
现在您已经位于 Hello 文件夹中,下面请通过键入以下内容来创建一个新的 Hello.cpp 文件:

notepad Hello.cpp
记事本将打开并提示您创建新文件。将 Hello.cpp 清单中的代码键入或粘贴到记事本中。在记事本中单击 File,再单击 Save,然后返回到 Visual C++ Toolkit 2003 命令提示窗口并键入:

cl Hello.cpp 
您将看到很多警告和消息,您现在可以安全地忽略它们。在列表的结尾,您应当看到以下消息:

Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:hello.exe
hello.obj
该消息表明 Hello.cpp 被编译为 hello.obj,并且它被链接到适当的 C++ 库以创建 Hello.exe 应用程序。您可以通过在命令提示窗口中键入 hello 来测试 Hello.exe 应用程序。您应当看到以下消息。

C:\Program Files\Microsoft Visual C++ Toolkit 2003\Hello>hello
Hello World!
我在前面提到过,您在编译该应用程序时可能看到过一些警告,其中包括有关 C++ 异常处理程序以及是否启用展开语义的警告。在本文中,我将不会讨论这一特定主题,但是您可以在编译命令中指定 /EHsc 命令行选项,以便指定同步异常处理模型,并使这些消息消失:

cl /EHsc Hello.cpp 
现在您已经打开了 Visual C++ Toolkit 2003 命令提示窗口,下面请查看一下 Visual C++ 编译器所提供的选项的数量。要获得该列表,请用 /help 选项运行该编译器。

cl /help
这个大型选项列表对于现代的 C++ 编译器而言是很常见的,它应当向您提供有关编译器复杂程度的一些暗示。您可以在  Visual C++ Compiler Options 页上获得有关编译器选项的详细信息。

现在您已经了解了如何使用 Visual C++ Toolkit 2003 生成和运行非常简单的应用程序,接下来您应当能够生成和测试介绍性的 C++ 书籍中可能包含的任何示例。如果您对于 C++ 还非常陌生,那么我建议您阅读下面的一些介绍性书籍:

Stan Lippman 和 Josee Lajoie 撰写的  C++ Primer

Stephen Randy Davis 撰写的  C++ for Dummies

Harvey M. Deitel 和 Paul J. Deitel 撰写的  C++: How to Program

如果您已经具有编程背景并且希望立即开始使用 C++,那么我建议您阅读由 Stan Lippman 撰写的  Essential C++。

您可以通过阅读由 Kate Gregory 撰写的优秀文章(它们随附在工具包中)来继续探索 Visual C++ Toolkit 2003。这些文章还可以从 MSDN 工具包主页上联机获得。

在很多解释如何使用 Visual C++ Toolkit 2003 来探索 C++ 的文章中,它们是其中的佼佼者。请随时地通过 brianjo@microsoft.com 向我发送便条,以提供您对本文的意见,以及您希望看到的有关该主题的其他文章的建议。

关于作者

Brian Johnson 是 MSDN 安全和 Visual C++ 内容战略家。他与别人合著了  Inside Microsoft Visual Studio .NET 2003 一书。您可以在  http://bufferoverrun.net 阅读他的网络日记。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/aasmfox/article/details/52289194

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/738849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Threejs播放模型自带动画

现在的很多建模软件都可以制作动画效果&#xff0c;甚至可以通过各种动画效果直接做动漫&#xff0c;动漫是模型的一种属性&#xff0c;在threejs中同样可以加载此动画&#xff0c;实现动画效果&#xff0c;如果有的时候在threejs中用代码实现模型动画比较困难或者麻烦&#xf…

MongoDB聚合运算符:$denseRank

$denseRank聚合运算符返回在$setWindowFields阶段分区中文档的排名&#xff0c;排名的顺序由$setWindowFields阶段sortBy的字段值决定。 语法 { $denseRank: { } }$denseRank不需要任何参数。 使用 $rank和$denseRank的不同点在于他们处理排序字段重复值的方式不同&#xf…

嵌入式、开发板 智能音响 OpenHarmony GPT 大模型 智能硬件

一、概述 生活场景的引入: 物联网的快速发展,各种智能设备层出不穷,作为极客,家里早已安上了用 APP 控制的智能灯、智能插座,刚刚安装上的时候,还有新鲜感,久了之后,是不是会有这样的现象: 早上醒来要开灯,需要经过: 迷迷糊糊从床头柜上摸到手机手机用指纹解锁连接无…

3.11 log | 739. 每日温度,

739. 每日温度&#xff0c;496.下一个更大元素 I&#xff0c;503.下一个更大元素II&#xff0c; class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int> st;vector<int> result(temperatures.size(),0)…

Hadoop学习1:概述、单体搭建、伪分布式搭建

文章目录 概述基础知识Hadoop组件构成Hadoop配置文件 环境准备配置Hadoop配置下载配置环境变量 Hadoop运行模式Standalone Operation&#xff08;本地&#xff09;官方DemoWordCount单词统计Demo Pseudo-Distributed Operation&#xff08;伪分布式模式&#xff09;配置修改启动…

Bootstrap5(display显示、flex布局相关属性、浮动、定位、文本、栅格系统)

类中缀的设置技巧 1.当多个连续品目使用一个样式时&#xff0c;则给最小的设置即可。 比如&#xff1a;大屏以上内边距都是3&#xff1a;p-lh-3 2.超小屏不设置类中缀的样式 比如超小屏内边距时1&#xff0c;小屏内边距时2&#xff0c;中屏及以上内边距是3 p-1 p-sm-2 p-md-3 …

WPF 界面刷新问题 不支持从调度程序线程以外的线程对其 SourceCollection 进行的更改

WPF 界面刷新问题 不支持从调度程序线程以外的线程对其 SourceCollection 进行的更改 问题描述&#xff1a; 在子线程中操作界面控件的数据源出现以下错误&#xff1a;System.NotSupportedException:“该类型的 CollectionView 不支持从调度程序线程以外的线程对其 SourceCo…

【Python】新手入门学习:什么是相对路径?

【Python】新手入门学习&#xff1a;什么是相对路径&#xff1f; &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得…

【Echarts】柱状图上方显示数字以及自定义值,标题和副标题居中,鼠标上显示信息以及自定义信息

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《前端》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握…

linux 环境安装nvm

linux 环境安装nvm 1、安装方式 # 方式1 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 方式2 【推荐】 wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash2、创建nvm命令目录 mkdir -p ~/.nvm3、编…

StringBuilder --java学习笔记

StringBuilder 代表可变字符串对象&#xff0c;相当于是一个容器&#xff0c;它里面装的字符串是可以改变的&#xff0c;就是用来操作字符串的StringBuilder比String更适合做字符串的修改操作&#xff0c;效率会更高&#xff0c;代码也会更简洁 StringBuilder的常用构造器和方…

C++操作树莓派的RTC时钟

概述 RTC实时时钟通常是指一个集成电路&#xff0c;RTC本质上是一个独立的定时器&#xff0c;通常情况下需要外接一个32.768KHZ的晶振和匹配电容&#xff08;10~33pf&#xff09;&#xff0c;由于时间是不停止的&#xff0c;为了满足这一要求&#xff0c;所以RTC实时时钟有两种…

idea2023和历史版本的下载

1.idea中文官网 idea官网历史版本下载(https://www.jetbrains.com.cn/idea/download/other.html)

基于SpringBoot的“学生成绩管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“学生成绩管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面图 管理员功能界面图 学生管理界面图…

蓝桥杯2019年第十届省赛真题-修改数组

查重类题目&#xff0c;想到用标记数组记录是否出现过 但是最坏情况下可能会从头找到小尾巴&#xff0c;时间复杂度O(n2)&#xff0c;数据范围106显然超时 再细看下题目&#xff0c;我们重复进行了寻找是否出现过&#xff0c;干脆把每个元素出现过的次数k记录下来&#xff0c;直…

做抖音小店有何秘诀?2步提高流量和转化率,行业秘诀分享!

大家好&#xff0c;我是电商花花。 我们做抖音小店&#xff0c;最重要的就两点&#xff0c;一个是店铺的流量&#xff0c;一个是店铺的转化率。 店铺想要出单&#xff0c;赚钱&#xff0c;必然是离不开店铺的流量和转化率了&#xff0c;但是如何让流量变成销量这才是需要我们…

redis概述和安装

1 、redis概述和安装 1.1、安装redis 1. 下载redis2. 地址 : https://download.redis.io/releases/ 3. 选择需要的版本1.2 将 redis 安装包拷贝到 /opt/ 目录 1.3. 解压 tar -zvxf redis-6.2.1.tar.gz1.4. 安装gcc yum install gcc1.5. 进入目录 cd redis-6.2.11.6 编译 …

Linux第76步_“gpio子系统”下的LED驱动

使用新字符设备驱动的一般模板和“gpio子系统”&#xff0c;以及设备树&#xff0c;驱动LED。 1、添加“gpio_led”节点 打开虚拟机上“VSCode”&#xff0c;点击“文件”&#xff0c;点击“打开文件夹”&#xff0c;点击“zgq”&#xff0c;点击“linux”&#xff0c;点击“…

[零声教育] C++高性能日志课程总结

高性能日志 1 数据肯定是批量写入的 如果数据单笔写入会造成 磁盘寻址、频繁用户态/内核态的切换 &#xff08;耗时&#xff09; 2 fwrite/write 的区别 fwrite() 是C标准库中的函数&#xff0c;而 write() 是系统调用接口。fwrite底层也是通过write来实现的。 二者均都有缓冲…

重学SpringBoot3-ErrorMvcAutoConfiguration类

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 重学SpringBoot3-ErrorMvcAutoConfiguration类 ErrorMvcAutoConfiguration类的作用工作原理定制 ErrorMvcAutoConfiguration示例代码1. 添加自定义错误页面2.自定义错误控制器3. ErrorAttributes定制错误信息 结…