[C++] cl.exe(编译器和链接器)工具介绍和使用场景

发布时间:2024年01月19日

什么是cl.exe?

cl.exe(Compile and Link.exe) 是一个控制 Microsoft C++ (MSVC) C 和 C++ 编译器和链接器的工具。 cl.exe 只能在支持 Microsoft Visual Studio for Windows 的操作系统上运行。

编译器生成通用对象文件格式 (COFF) 对象 (.obj) 文件。 链接器生成可执行文件 (.exe) 文件或动态链接库 (DLL)。

所有编译器选项均区分大小写。 可以使用正斜杠 (/) 或短划线 (-) 指定编译器选项。

若要在不链接的情况下进行编译,请使用 /c 选项。

MSVC 编译器选项 | Microsoft Learn

备注:

只能从 Visual Studio 开发人员命令提示启动此工具。 不能从系统命令提示符或从文件资源管理器启动此工具。 有关详细信息,请参阅通过命令行使用 MSVC 工具集

如何通过命令行来运行cl.exe?

安装Visual Studio以及C和C++支持 

在 Visual Studio 中安装 C 和 C++ 支持 | Microsoft Learn

cl.exe是MSVC的一部分,安装完之后,你可以在MSVC的bin目录下的子目录找到它。

一共四个版本,Hostx64-x64,Hostx64-x86,Hostx86-x64,Hostx86-x86,下图是其中一个: 

如果你安装了VS Code和CMake Tools插件,也可以查到到对应4个版本的MSCV的cl.exe编译器,如下图所示:

X64\X86\X86-64的区别

x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为“IA-32”

x86_64是x86 CPU开始迈向64位的时候,有2选择:1、向下兼容x86。2、完全重新设计指令集,不兼容x86。AMD抢跑了,比Intel率先制造出了商用的兼容x86的CPU,AMD称之为AMD64,抢了64位PC的第一桶金,得到了用户的认同。而Intel选择了设计一种不兼容x86的全新64为指令集,称之为IA-64(这玩意似乎就是安腾),但是比amd晚了一步,而且IA-64也挺惨淡的,因为是全新设计的CPU,没有编译器,也不支持windows(微软把intel给忽悠了,承诺了会出安腾版windows server版,但是迟迟拿不出东西)。。。后来不得不在时机落后的情况下也开始支持AMD64的指令集,但是换了个名字,叫x86_64,表示是x86指令集的64扩展,大概是不愿意承认这玩意是AMD设计出来的。

也就是说实际上,x86_64,x64,AMD64基本上是同一个东西,我们现在用的intel/amd的桌面级CPU基本上都是x86_64。

添加cl.exe所在目录到系统变量“Path”

通过我的电脑属性查看你当前机器使用的CPU类型:

我笔记本使用的是Intel 64位的CPU,因此我这里会使用bin的.\Hostx86\x64\子目录下的cl.exe。

因此把该目录添加到系统变量“Path”中:

打开一个新的命令行窗口,输入“cl”按回车,就可以显示当前cl.exe对应的版本:

如何使用cl.exe命令?

文章来源:https://blog.csdn.net/u011775793/article/details/135688104
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。