【01】一步一步命令行输出VC hello world

一步一步命令行输出VC hello world

  • 安装VS2022
  • 编写hello world程序
  • 配置cl.exe
  • 编译helloworld.cpp
  • 总结

安装VS2022

VS2022的安装程序下载地址:https://visualstudio.microsoft.com/zh-hans/downloads/ 。下载完成之后点击程序会进入到选择安装VS2022组件的安装程序,选择你需要的安装组件就好,如果只需要C++的程序就仅安装C++就好了。 这样会轻便很多。
我安装好的目录结构如下图:
【01】一步一步命令行输出VC hello world_第1张图片

编写hello world程序

编写一个最简单的C++ hello word程序.

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

配置cl.exe

VC++的编译程序为cl.exe
以我本机安装的VS2022目录为例,编译程序在目录D:\dev\vs2022\ide\VC\Tools\MSVC\14.31.31103\bin下.
【01】一步一步命令行输出VC hello world_第2张图片
在该目录上还有针对主机64位X86的两个文件夹目录。比如我的是64位的。那我选Hostx64,然后进入目录又有要编译后的程序是选64还是X86的两个目录,如果要编译64位的程序,选择x64文件夹就好了。 这样最终到达了cl.exe所在的目录.

【01】一步一步命令行输出VC hello world_第3张图片为了方便后续使用命令, 将改路径配置到环境变量Path路径中。
【01】一步一步命令行输出VC hello world_第4张图片
现在新开一个命令窗口cmd.exe。可以直接运行cl.exe了。
【01】一步一步命令行输出VC hello world_第5张图片

编译helloworld.cpp

进入到helloworld.cpp文件目录. 然后在命令行直接编译该文件

cl.exe -GX helloworld.cpp

【01】一步一步命令行输出VC hello world_第6张图片
以上操作不错意外的报错了。 看报错原因是找不到iostream这个头文件。头文件的目录在哪里啦?应该也会在这个VS2022的目录中, 以我本地的环境为例。目录在D:\dev\vs2022\ide\VC\Tools\MSVC\14.31.31103\include.这里存在很多需要的头文件。 接下将这个目录配置到INCLUDE环境变量中。
【01】一步一步命令行输出VC hello world_第7张图片
重新启动cmd.exe编译(一定要重开cmd,要不然不会重新加载系统的环境变量.
重新编译
重新编译已经不再报找不到头文件iostream啦, 但是依然找不到必须的头文件“crtdbg.h” 。看来crtdbg.h不在刚才的目录下。crtdbg.h一般会在以个WIndows Kits的目录下. 我本地环境中可以找到在目录D:\Windows Kits\10\Include\10.0.20348.0\ucrt中.【01】一步一步命令行输出VC hello world_第8张图片
这里面也很多头文件, 那也把这个目录配置到INCLUDE环境变量中。
再试编译。
【01】一步一步命令行输出VC hello world_第9张图片见上,已经不再报找不到头文件了。 但是报无法做链接操作了,因为找不到静态库libcpmt.lib
在前面的MSVC目录下已经能主要到一个libD:\dev\vs2022\ide\VC\Tools\MSVC\14.31.31103.在目录lib下也有两个针对不同平台的目录x86x64
把该目录配置到系统环境变量LIB中。
【01】一步一步命令行输出VC hello world_第10张图片
再次编译。

【01】一步一步命令行输出VC hello world_第11张图片
再次编译,报错找不到kernel32.lib了。我本机也在D:\Windows Kits\10\Lib\10.0.20348.0\um\x64下。
【01】一步一步命令行输出VC hello world_第12张图片
把目录D:\Windows Kits\10\Lib\10.0.20348.0\um\x64也配置到系统环境变量LIB中。
【01】一步一步命令行输出VC hello world_第13张图片
配置完成之后再进行编译操作.
【01】一步一步命令行输出VC hello world_第14张图片
根据以上配置的经验,应该也能推测出在Windows Kits下能找到了。继续追加系统环境变量LIB

【01】一步一步命令行输出VC hello world_第15张图片
再次尝试编译是否能通过.
【01】一步一步命令行输出VC hello world_第16张图片
通过上面不断的修正错误,已经可以完全通过了。程序已经成功输出了helloworld.exe

【01】一步一步命令行输出VC hello world_第17张图片

总结

VC编译使用的是cl.exe(当然中间还有一些编译链接的过程,直接被包装进去了)。 在编译过程中主要牵扯到了头文件静态链接库.他们使用的环境变量分别为INLUDELIB。如果编译相应报错就尝试修改追加该参数的值就能解决响应的问题。罗里吧嗦,主要是为了抛砖引玉,更能在青铜选手上解决该问题。

你可能感兴趣的:(杂项,c++,开发语言)