无法使用Visual Studio 2010 Express配置CMake

时间:2013-05-30 13:32:47

标签: cmake

有人可以帮助我,我正在尝试使用Visual Studio 2010 Express配置CMake,但它失败了。整个错误消息如下:

  

C编译器标识是MSVC 16.0.30319.1 CXX编译器   标识是MSVC 16.0.30319.1检查工作C编译器   使用:Visual Studio 10检查工作C编译器使用:Visual   Studio 10 - 在C:/ Program Files / CMake中损坏的CMake错误   2.8 / share / cmake-2.8 / Modules / CMakeTestCCompiler.cmake:61(消息):C编译器“C:/ Program Files / Microsoft Visual Studio     10.0 / VC / bin / cl.exe“无法编译简单的测试程序。

     

它失败并显示以下输出:

     

更改目录:C:/OpenCV2.2/build/CMakeFiles/CMakeTmp

     

运行Build   命令:C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ MSBuild.exe
  cmTryCompileExec2312584318.vcxproj / p:Configuration = Debug
  /p:VisualStudioVersion=10.0

     

Microsoft(R)Build Engine版本4.0.30319.17929

     

[Microsoft .NET Framework,版本4.0.30319.17929]

     

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

     

Build build 30/05/2013 20:16:01。

     

项目
  “C:\ OpenCV2.2 \建立\ CMakeFiles \ CMakeTmp \ cmTryCompileExec2312584318.vcxproj”   在节点1上(默认目标)。

     

PrepareForBuild:

Creating directory "cmTryCompileExec2312584318.dir\Debug\".
Creating directory "C:\OpenCV2.2\build\CMakeFiles\CMakeTmp\Debug\".
     

InitializeBuildStatus:

Creating "cmTryCompileExec2312584318.dir\Debug\cmTryCompileExec2312584318.unsuccessfulbuild"
     

因为指定了“AlwaysCreate”。

     

ClCompile:

C:\Program Files\Microsoft Visual Studio 10.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:精确   / Zc:wchar_t / Zc:forScope / Fo“cmTryCompileExec2312584318.dir \ Debug \”   /Fd"C:/OpenCV2.2/build/CMakeFiles/CMakeTmp/Debug/cmTryCompileExec2312584318.pdb”   / Gd / TC / analyze- / errorReport:queue testCCompiler.c       Microsoft(R)32位C / C ++优化编译器版本16.00.30319.01 for 80x86       版权所有(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“cmTryCompileExec2312584318.dir \ Debug \”   /Fd"C:/OpenCV2.2/build/CMakeFiles/CMakeTmp/Debug/cmTryCompileExec2312584318.pdb”   / Gd / TC / analyze- / errorReport:queue testCCompiler.c

testCCompiler.c
     

ManifestResourceCompile:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\rc.exe /nologo /fo"cmTryCompileExec2312584318.dir\Debug\cmTryCompileExec2312584318.exe.embed.manifest.res" cmTryCompileExec2312584318.dir\Debug\cmTryCompileExec2312584318_manifest.rc
     

链接:

C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:QUEUE
     

/ OUT: “C:\ OpenCV2.2 \建立\ CMakeFiles \ CMakeTmp \调试\ cmTryCompileExec2312584318.exe”   / INCREMENTAL / NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib   shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib   /表现   /ManifestFile:"cmTryCompileExec2312584318.dir\Debug\cmTryCompileExec2312584318.exe.intermediate.manifest“/ MANIFESTUAC:”level ='asInvoker'uiAccess ='false'“/ DEBUG   /PDB:"C:/OpenCV2.2/build/CMakeFiles/CMakeTmp/Debug/cmTryCompileExec2312584318.pdb”   / SUBSYSTEM:CONSOLE / TLBID:1 / DYNAMICBASE / NXCOMPAT   /IMPLIB:"C:/OpenCV2.2/build/CMakeFiles/CMakeTmp/Debug/cmTryCompileExec2312584318.lib”   / MACHINE:X86   cmTryCompileExec2312584318.dir \调试\ cmTryCompileExec2312584318.exe.embed.manifest.res       cmTryCompileExec2312584318.dir \ Debug \ testCCompiler.obj / machine:X86 / debug

     

LINK:致命错误LNK1123:转换为COFF:文件时失败   无效或腐败的   [C:\ OpenCV2.2 \建立\ CMakeFiles \ CMakeTmp \ cmTryCompileExec2312584318.vcxproj]

     

完成建筑项目
  “C:\ OpenCV2.2 \建立\ CMakeFiles \ CMakeTmp \ cmTryCompileExec2312584318.vcxproj”   (默认目标) - 失败。

     

构建失败。

 "C:\OpenCV2.2\build\CMakeFiles\CMakeTmp\cmTryCompileExec2312584318.vcxproj"
     

(默认目标)(1) - >

     

(链接目标) - >

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
     

[C:\ OpenCV2.2 \建立\ CMakeFiles \ CMakeTmp \ cmTryCompileExec2312584318.vcxproj]

  0 Warning(s)
  1 Error(s)
     

时间流逝00:00:00.64

     

CMake无法正确生成此项目。呼叫   Stack(最近一次调用):CMakeLists.txt:47(项目)

     

配置不完整,发生错误!

任何建议?

4 个答案:

答案 0 :(得分:5)

安装the windows 7 SDK,然后安装VC-Compiler-KB2519277。解决了我的问题。

答案 1 :(得分:3)

在win7x64上遇到与CMake相同的问题。问题与.NET 4.5有关。如果您不想卸载4.5,并且已经设置了解决方案,请确保disable incremental linking,否则您将无法构建。

要解决您的CMake问题,您必须在计算机上卸载.NET 4.5并重新安装.NET 4.0才能使CMake正常工作(4.5删除所有4.0的程序集等等)

显然无法在安装4.5时安装4.0,因此使用Windows控制面板进行卸载(控制面板\程序\程序和功能)

CMake does not consider这是一个错误,而不是MS问题。

答案 2 :(得分:3)

如果安装了Net framework 4.5,则必须将VS 2010更新到SP1才能使某些内容正常工作。有时您可以通过在项目配置>中设置增量构建来解决问题。链接器设置。如果在VS 2010之后安装了VS 2012,则在更新VS 2010之前,需要在MSDN上搜索有关避免依赖性的文章。我的猜测是,在将旧版本升级到新的Service Pack之前,您必须卸载较新的版本。 MSDN中有一组页面解释了每个步骤。只是谷歌他们。我也遇到过CMake这个问题。这就是我解决它的方式。此外,我已经安装了Windows 7 SDK。所以我不确定是否需要安装才能解决这个问题。

答案 3 :(得分:0)

在我的情况下,安装VC2010 Service Pack 1在重新启动后解决了我的问题。 没有安装Windows SDK 7.1或者其他任何东西。

如果您不想重新安装.NET Frameworks和/或进行 400mb Windows SDK更新,请先试试这个更轻的解决方案。