有人可以帮助我,我正在尝试使用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.0Microsoft(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(项目)
配置不完整,发生错误!
任何建议?
答案 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更新,请先试试这个更轻的解决方案。