CMake生成VS2013项目失败的解决办法

来源:互联网 发布:淘宝进口牛肉便宜 编辑:程序博客网 时间:2024/06/05 16:27

原文地址:http://blog.csdn.net/du_qi/article/details/47040423

在使用CMake生成一个VS2013项目时,遇到如下内容的错误信息:

————————————————分割线———————————————————

The C compiler identification is MSVC 18.0.21005.1

The CXX compiler identification is MSVC 18.0.21005.1

Check for working C compiler using: Visual Studio 12 2013

Check for working C compiler using: Visual Studio 12 2013 -- broken

CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.1/Modules/CMakeTestCCompiler.cmake:61 (message):
The C compiler "C:/Program Files (x86)/Microsoft Visual Studio
12.0/VC/bin/cl.exe" is not able to compile a simple test program.

It fails with the following output:

Change Dir: E:/硕士/实验室事务/无人机项目/无人机视觉/目标跟踪/AR Drone2.0开源项目/开发资料/目标跟踪/KCF/kcf-移植/C++版本/SRT(C++)/build/CMakeFiles/CMakeTmp

Run Build Command:"C:/Program Files (x86)/MSBuild/12.0/bin/MSBuild.exe"
"cmTryCompileExec3720408510.vcxproj" "/p:Configuration=Debug"
"/p:VisualStudioVersion=12.0"

Microsoft(R) 生成引擎版本 12.0.21005.1


[Microsoft .NET Framework 版本 4.0.30319.34209]


版权所有 (C) Microsoft Corporation。保留所有权利。


生成启动时间为 2015/7/24 14:09:11。


节点 1 上的项目“E:\硕士\实验室事务\无人机项目\无人机视觉\目标跟踪\AR
Drone2.0开源项目\开发资料\目标跟踪\KCF\kcf-移植\C++版本\SRT(C++)\build\CMakeFiles\CMakeTmp\cmTryCompileExec3720408510.vcxproj”(默认目标)。


PrepareForBuild:


正在创建目录“cmTryCompileExec3720408510.dir\Debug\”。


正在创建目录“E:\??ê?\êμ?éêòê???\?Tè??ú????\?Tè??úêó??\??±ê?ú×ù\AR Drone2.0?a?′????\?a·¢×êá?\??±ê?ú×ù\KCF\kcf-ò??2\C++°?±?\SRT(C++)\build\CMakeFiles\CMakeTmp\Debug\”。


正在创建目录“cmTryCompileExec3720408510.dir\Debug\cmTryCom.7242CB77.tlog\”。


InitializeBuildStatus:


正在创建“cmTryCompileExec3720408510.dir\Debug\cmTryCom.7242CB77.tlog\unsuccessfulbuild”,因为已指定“AlwaysCreate”。


MakeDirsForCl:


正在创建目录“E:\硕士\实验室事务\无人机项目\无人机视觉\目标跟踪\AR Drone2.0开源项目\开发资料\目标跟踪\KCF\kcf-移植\C++版本\SRT(C++)\build\CMakeFiles\CMakeTmp\Debug”。


ClCompile:


C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /Zi /W3 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"cmTryCompileExec3720408510.dir\Debug\\" /Fd"cmTryCompileExec3720408510.dir\Debug\vc120.pdb" /Gd /TC /analyze- /errorReport:queue "E:\??ê?\êμ?éêòê???\?Tè??ú????\?Tè??úêó??\??±ê?ú×ù\AR Drone2.0?a?′????\?a·¢×êá?\??±ê?ú×ù\KCF\kcf-ò??2\C++°?±?\SRT(C++)\build\CMakeFiles\CMakeTmp\testCCompiler.c"


用于 x86 的 Microsoft (R) C/C++ 优化编译器 18.00.21005.1 版版权所有(C) Microsoft Corporation。 保留所有权利。


cl /c /Zi /W3 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"cmTryCompileExec3720408510.dir\Debug\\" /Fd"cmTryCompileExec3720408510.dir\Debug\vc120.pdb" /Gd /TC /analyze- /errorReport:queue "E:\??ê?\êμ?éêòê???\?Tè??ú????\?Tè??úêó??\??±ê?ú×ù\AR Drone2.0?a?′????\?a·¢×êá?\??±ê?ú×ù\KCF\kcf-ò??2\C++°?±?\SRT(C++)\build\CMakeFiles\CMakeTmp\testCCompiler.c"


testCCompiler.c


c1 : fatal error C1083: 无法打开源文件:
“E:\??ê?\êμ?éêòê???\?Tè??ú????\?Tè??úêó??\??±ê?ú×ù\AR
Drone2.0?a?′????\?a·¢×êá?\??±ê?ú×ù\KCF\kcf-ò??2\C++°?±?\SRT(C++)\build\CMakeFiles\CMakeTmp\testCCompiler.c”:
No such file or directory
[E:\硕士\实验室事务\无人机项目\无人机视觉\目标跟踪\AR
Drone2.0开源项目\开发资料\目标跟踪\KCF\kcf-移植\C++版本\SRT(C++)\build\CMakeFiles\CMakeTmp\cmTryCompileExec3720408510.vcxproj]



已完成生成项目“E:\硕士\实验室事务\无人机项目\无人机视觉\目标跟踪\AR
Drone2.0开源项目\开发资料\目标跟踪\KCF\kcf-移植\C++版本\SRT(C++)\build\CMakeFiles\CMakeTmp\cmTryCompileExec3720408510.vcxproj”(默认目标)的操作
- 失败。



生成失败。



“E:\硕士\实验室事务\无人机项目\无人机视觉\目标跟踪\AR
Drone2.0开源项目\开发资料\目标跟踪\KCF\kcf-移植\C++版本\SRT(C++)\build\CMakeFiles\CMakeTmp\cmTryCompileExec3720408510.vcxproj”(默认目标)
(1) ->



(ClCompile 目标) ->



c1 : fatal error C1083: 无法打开源文件: “E:\??ê?\êμ?éêòê???\?Tè??ú????\?Tè??úêó??\??±ê?ú×ù\AR Drone2.0?a?′????\?a·¢×êá?\??±ê?ú×ù\KCF\kcf-ò??2\C++°?±?\SRT(C++)\build\CMakeFiles\CMakeTmp\testCCompiler.c”: No such file or directory [E:\硕士\实验室事务\无人机项目\无人机视觉\目标跟踪\AR Drone2.0开源项目\开发资料\目标跟踪\KCF\kcf-移植\C++版本\SRT(C++)\build\CMakeFiles\CMakeTmp\cmTryCompileExec3720408510.vcxproj]


0 个警告


1 个错误


已用时间 00:00:00.44


CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:2 (PROJECT)

Configuring incomplete, errors occurred!

See also "E:/硕士/实验室事务/无人机项目/无人机视觉/目标跟踪/AR Drone2.0开源项目/开发资料/目标跟踪/KCF/kcf-移植/C++版本/SRT(C++)/build/CMakeFiles/CMakeOutput.log".

See also "E:/硕士/实验室事务/无人机项目/无人机视觉/目标跟踪/AR Drone2.0开源项目/开发资料/目标跟踪/KCF/kcf-移植/C++版本/SRT(C++)/build/CMakeFiles/CMakeError.log".

————————————————————————————————华丽的分割线———————————————————————————————————————


       上面的信息看起来很杂乱,其实就只有一个错误,开头的时候提示“The C compiler "C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe" is not able to compile a simple test program.” 这句话意思是说,cl.exe无法编译一个简单的测试程序,然后cmake继续生成它能生成的内容,到最后快结束的时候,cmake检查发现无法打开testCCompiler.c,出现这个错误的原因是很显然的,因为开头就提示了cl.exe无法编译一个简单的测试程序,testCCompiler.c没有生成,当然就打不开了。笔者一开始也是上网查找该问题的解决办法,发现不少人遇到,但是问题的前提稍有不同,如文章http://blog.csdn.NET/zwlq1314521/article/details/19199613中提到的因为同时装了VS2010和VS2012导致问题,卸载vs2012以及.NET4.5组件解决了问题,然后好多人不管问题的前提是否一样,也去卸载.NET4.5,这样的行为是非常危险的,可能会导致更加严重的后果,就像人生病不对症乱吃药。笔者针对自己的情况进行分析,发现错误提示中有好多乱码,于是想到自己安装的cmake是英文版,是不是对中文文件夹名不支持,然后将项目移到一个英文文件目录下,真的就能生成成功了。由此明白一个道理,有些问题看起来很麻烦,但仔细去分析,也许发现很简单。

0 0