C++ Primer学习笔记 - 1 - 万物之始:编译并运行第一个C++程序

编译并运行第一个C++程序

C++ Primer一开始就给了我一个下马威。
第一章第一节的练习是编译并运行一个main程序,程序内容非常简短,只有几行,内容如下:

int main()
{
	return 0;
}

甚至不是“Hello World”程序,但是它需要使用编译器进行编译,虽然使用VS创建一个控制台程序很简单,但这毕竟不是一切的开始,于是我开始了折腾。

伊始的第一章

这一章的内容一共六节,从编写一个简单的程序开始,到输入输出、注释简介、控制流、类简单,最后一章应该是一个相对完整的小程序——书店程序,看着个目录,让我不由得想起了这个段子 :
没错,你已经学会了
其实1.1节并不长,重点讲了一下函数(function)的基本格式,这个凡是稍写过一点代码的应该都明白,不需要细说,然后重点来了:使用命令行编译一个C++程序。

编译遇到了一系列问题

首先是第一个程序的内容,依书上所写,一个字符都不动:包括文件名,叫prog1.cc,记事本写完,扔在桌面。

C++ Primer里说,VS编译器的命令为cl,那么首先在这里要说的是,WIN10有两个命令行工具——一个是Windows Power Shell,另一个是使用过多年的CMD,在实际使用中,两者并没有太大区别,不过Power Shell功能更多更强大一些。
那么我们随意打开一个,这里使用CMD。

1. 练习题 1.1 - 找不到cl指令

输入指令:

cl /EHsc prog1.cpp

输入的时候我就知道,事情肯定不会这么简单,果然标准结局来了:
不是内部或外部命令
当然了,这难不倒我,这肯定是找不到cl.exe呗, 身经百战的我怎么会被这打倒,按照惯例,两个方法:一是打开cl.exe所在的文件夹,二是配置环境变量,为了一劳永逸,当然是要配置环境变量了。
于是打开VS2017安装目录,搜索cl.exe,找到了四个文件,前面目录都一样C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\,区别只在于之后是\Hostx64\x86\Hostx64\x64\Hostx86\x64\Hostx86\x86,当然选择了\Hostx64\x64
配置完成,输入cl,搞定。
在这里插入图片描述

2. 无法打开各种库

好了,继续编译,输入指令:cl /EHsc prog1.cc
???
无法打开LIBCMT.lib
好嘛,找不到库,那还是老套路,继续配置环境变量,搜索LIBCMT.lib,添加环境变量,由于是调用库,所以环境变量的key要使用lib。
然而事情还是出乎了我的意料之外,CMD竟然又报了这个:

LINK : fatal error LNK1104: 无法打开文件“kernel32.lib”

那继续,还是一样的方法,配置环境变量。
嗯没错,配置完成kernel32.lib,还有第三个Lib。

LINK : fatal error LNK1104: 无法打开文件“libucrt.lib”

当然了,一样的套路,继续。

OK
OK,一切搞定。

3. 获取输入值

我前面有说到,Windows中有两个自带的命令行工具,C++ Primer里说使用%ERRORLEVEL%来获取返回值,要注意:这只能在CMD里使用,在PowerShell中要使用$LASTEXITCODE来获取。
在这里插入图片描述
在这里插入图片描述

4. 练习题 1.2 - 改写程序,返回-1

到了这一步,其实需要解决的问题都已经解决了,非常顺利:

在这里插入图片描述

结束1.1

其实问题并不难,这都是以前在折腾java环境的时候使用过的套路,就是繁琐了一些。
好了,下一章。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值