您的位置:首页 > 编程语言 > C语言/C++

《C++Primer》读书笔记之---Windows下通过命令行窗口编译运行C++程序的尝试

2016-07-22 22:56 309 查看
最近开始学习C++,我选择了里普曼写的这本《C++Primer(第五版)》作为启蒙书籍,在阅读1.1章中关于程序的编译、运行时我便发现了一个不小的问题,那就是---如何能够通过Windows系统的cmd(命令行窗口)实现对程序的编译及运行?

尽管书中给出了编译、运行程序的命令,也给出了相应的主流编译器的调用命令(如下所示),但是在实际操作中还是遇到了不少问题。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

GNU编译器:$ g++ -o hello hello.cc

Visual Studio 2010编译器:C:\Users\shelly\Desktop> cl /EHsc hello.cpp

(其中,\Users\shelly\Desktop是该cpp文件存在的当前文件夹位置;/EHsc是编译器选项,用来打开标准异常处理)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我使用的是VS2013编译器,以下是实操中所遇问题及个人的解决方案:

一、打开记事本编写一段简单的hello world程序并另存为hello.cpp文件放在桌面;

#include<iostream>
using namespace std;
int main()
{
cout<<"hello world!"<<endl;
return 0;
}


二、打开cmd界面输入编译器cl指令时,显示无效指令;

三、设置好环境变量(包含编译器程序cl.exe)、c++程序运行所需包含的系统头文件和系统库文件,创建批处理文件batch.bat,同样放在桌面。

set path=D:\VS2013\VC\bin

set include=D:\VS2013\VC\include

set lib=D:\VS2013\VC\lib

上述操作还可以通过此电脑/属性/高级系统设置/环境变量进行设置,其中include和lib需要自己创建相应的环境变量值;

四、打开cmd界面输入cd C:\Users\shelly\Desktop更改当前操作路径,然后输入batch.bat运行;

五、再次输入cl指令,出现如下界面,说明环境设置成功;


六、输入cl /EHsc hello.cpp指令,可以看到程序成功编译生成hello.obj文件,但是在链接生成hello.exe文件时却出现了错误"LINK:fatal error LNK1104:无法打开文件“uuid.lib”;

七、uuid为系统文件,在通过系统搜索文件功能时出现了新的问题,查找得Uuid.lib的路径有两个,分别为C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64和C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib,将前者.lib文件复制一份到hello.cpp文件所在文件夹中;

八、再次输入cl /EHsc hello.cpp指令,出现新错误"LINK:fatal error LNK1104:无法打开文件“kernel32.lib”,操作同上,同样发现Kernel32.lib有两个,分别在C:\Program
Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64和C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib中,选择前者添加该库文件到cpp所在文件夹中;

九、在命令行界面输入cl hello.cpp指令,出现错误“81个无法解析的外部命令”;

十、重新返回第七步,选择后者的Uuid.lib文件和Kernel32.lib文件添加到cpp所在文件夹中;

十一、在命令行界面输入cl hello.cpp指令,程序成功生成hello.obj文件和helllo.exe文件,输入hello.exe,成功运行。


至此,我们就完成了对一个C++程序从编写---编译---链接---运行的过程,尽管现在的编译器大多都具有了IDE(集成开发环境),不需要我们去手动设置环境等操作,一定程度上提高了开发效率,但是通过这次操作却让我对一个程序从无到有的过程具有更加深入的认知,实是受益匪浅。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cmd c++ windows