错误的结果2......VC/bin/cl.exe返回的最终解决方案

本文记录了解决VC2008编译过程中出现的cl.exe错误的过程,通过调整编译器选项和环境配置,最终解决了编译失败的问题。

原文:http://blog.youkuaiyun.com/mdjtf/archive/2010/05/23/5617292.aspx

今日心血来潮,看着臃肿的VC2008生成文件突生不满,试行优化。按照前辈们说的把项目属性都配置一次,报错误的结果2......VC/bin /cl.exe返回。于是反复找,郁闷地发现居然错在第一条的优化上,就是最小化大小、最大化速度那里。但是,难道就不优化了吗?那我还不如去用VC6 了。

1、进行google,运行环境加了路径,不行。

2、为cl.exe加了缺少的MSPDB80.DLL文件,也不行。

3、输入:Msdev /useenv运行?我这是2008,要改成devenv /useenv,这次有点效果:生成cl.exe错误。这时发现路径全变了,但也是不行,再进来又恢复原状了。难不成非让我重 装?vs2008+sp1+devexpress+boost+bcg……还是弄死我算了。一定要解决!

4、不小心看到了devenv有个参数叫做devenv /ResetSettings,可以恢复VS2008初始值。果然,运行后说正在“第一次安装”,我等。进去后发现运行路径果然恢复到原始值了,界面也和 没设置时一样。再运行,还是一样的cl.exe返回错误。但是有了新发现。

5、程序运行时弹出了一个新窗口叫做“输出”的。里边写着生成日志保存在“file://d:/Founder/我的文档/Visual Studio 2008/Projects/xxxx/xxxx/Debug/BuildLog.htm”。打开,内容有:

 输出窗口      正在编译...
cl: 命令行 error D8016 :“/O2”和“/ZI”命令行选项不兼容
项目 : error PRJ0002 : 错误的结果 2 (从“C:/Program Files/Microsoft Visual Studio 9.0/VC/bin/cl.exe”返回)。

经查是调试信息格式的用于“编辑并继续”的程序数据库(/ZI),改成禁用,继续。

6、报程序数据库管理器错误,这是因为我以前copy了一个mspdb80.dll在system32目录下,删掉,继续。

7、cl: 命令行 error D8016 :“/O1”和“/RTC1”命令行选项不兼容,改代码生成的基本运行时检查为默认值,继续。

8、................................终于成功了。

不知我何德何能,居然蒙命运之神如此垂青,也有些佩服自己的坚韧不拔。

好吧,我承认,如果早知道输出窗口能看到报错的详细信息,早解决了。汗n个!!!!!

<think>好的,我现在需要解决用户遇到的cl.exe无法编译简单测试程序的问题。用户提到在CMake时出现找不到CMAKE_C_COMPILER的错误,这通常意味着CMake没有正确识别到可用的C编译器。用户可能是在Windows环境下使用Visual Studio的cl.exe作为编译器,但CMake找不到它。 首先,我应该考虑用户的环境是否正确配置。用户可能没有安装Visual Studio或者没有安装C++的工作负载。根据引用[3],用户可能在配置OpenVINO时运行了setupvars.bat,但这可能与环境变量有关,特别是如果Visual Studio的路径没有正确设置的话。需要确认用户是否安装了Visual Studio,并且包含了C++开发组件。 接下来,用户可能没有启动正确的命令提示符。Visual Studio的编译器cl.exe需要从“Developer Command Prompt”或者“x64 Native Tools Command Prompt”中运行,因为这些环境会自动设置必要的路径和变量。如果用户是在普通命令行或PowerShell中运行,可能会找不到cl.exe。因此,建议用户使用正确的命令提示符。 另外,环境变量的问题也可能导致CMake找不到编译器。用户需要检查PATH环境变量是否包含Visual Studio的安装路径,比如C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64。同时,INCLUDE和LIB变量也需要正确设置,以便编译器找到头文件和库文件。 用户可能还需要重新运行CMake并指定正确的生成器,例如使用Visual Studio的生成器,或者使用MinGW作为替代方案。如果用户不想使用Visual Studio,安装MinGW并配置CMake使用gcc也是一个可行的解决方案,如引用[2]提到的JIT编译可能涉及不同的工具链。 此外,用户可能没有以管理员权限运行命令提示符,导致权限问题。或者,防病毒软件可能干扰了编译器的运行,需要暂时禁用。 最后,建议用户查看CMake生成的CMakeError.log文件,里面可能有更具体的错误信息,帮助定位问题。例如,如果日志显示权限被拒绝,可能需要调整权限或关闭安全软件。 总结步骤:检查Visual Studio安装、使用正确的命令提示符、配置环境变量、指定CMake生成器、检查权限和防病毒软件、查看日志文件。这些步骤应该能帮助用户解决cl.exe无法编译的问题。</think>针对"cl.exe无法编译简单测试程序"的问题,以下是分步解决方案: ### 一、确认Visual Studio安装 1. 检查是否安装了**Visual Studio 2015/2017/2019/2022** 2. 在安装程序中勾选: - "使用C++的桌面开发"工作负载 - "Windows 10 SDK"或最新SDK - MSVC v142/v143生成工具(对应VS2019/VS2022) > 安装路径建议保持默认`C:\Program Files (x86)\Microsoft Visual Studio`[^3] ### 二、配置正确命令行环境 1. 通过开始菜单打开: ``` x64 Native Tools Command Prompt for VS 20XX ``` ![VS命令提示符示意图](https://example.com/vs_cmd.png) 2. 验证环境变量: ```bash where cl.exe # 应返回类似: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe ``` ### 三、修复环境变量(手动配置) 1. 添加PATH环境变量: ``` C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64 ``` 2. 设置关键变量: ```bat set INCLUDE=%VCToolsInstallDir%include;%UniversalCRTSdkDir%include\%UCRTVersion%\ucrt set LIB=%VCToolsInstallDir%lib\x64;%UniversalCRTSdkDir%lib\%UCRTVersion%\ucrt\x64 ``` ### 四、CMake配置建议 1. 明确指定生成器: ```bash cmake -G "Visual Studio 16 2019" -A x64 .. ``` 2. 或使用MinGW替代方案: ```bash cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ .. ``` ### 五、其他注意事项 1. 以管理员身份运行命令提示符 2. 暂时禁用防病毒软件(特别是实时扫描功能) 3. 检查磁盘空间>10GB可用 4. 查看`CMakeFiles\CMakeError.log`定位具体编译错误
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值