Visual Studio 2022是第一个Visual Studio x64的IDE,但是也不是意味着只能编写x64的程序,也可以编写x86的程序。但是如果直接编译x86版本,可能会遇到如下错误
MSB6006 Cl.exe已退出,代码为2。
这个错误如果在网上搜索解决方案,多半是一大堆相似的解决方案:关闭防火墙、杀毒软件,或者程序中有什么没有初始值,没有返回值错误等。
这些原因都与我们这个问题的无关。
真正的原因可能与Visual Studio 2022程序是一个x64程序有关。即使编译x86版本,也必须用x64的工具集(是不是Visual Studio 2022没有x86的工具集,这个没有证实)。
在项目的工程属性中配置x86平台 (Win32)【高级】-【首选的生成工具体系结构】-【64位】
这样就能成功编译x86程序了。
可能你会有疑惑,这样编译出来的是x86程序吗?因为我们用的是x64的工具集呀。
我们可以用visual studio的工具dumpbin.exe验证。在visual studio自带的命令工具中已经设置好了环境,通过在这个命令行工具中调用。
我编译的是一个dll,我们来看一下这个dll是不是x86的
dumpbin /headers **.dll
可以看到确实是x86的。