4

有人可以帮我吗,我正在尝试使用 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

运行构建命令:C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
cmTryCompileExec2312584318.vcxproj /p:Configuration=Debug
/p:VisualStudioVersion=10.0

Microsoft (R) Build Engine 版本 4.0.30319.17929

[Microsoft .NET 框架,版本 4.0.30319.17929]

版权所有 (C) 微软公司。版权所有。

构建开始于 30/05/2013 20:16:01。

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

PrepareForBuild:

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

初始化构建状态:

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

因为指定了“AlwaysCreate”。

Cl编译:

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: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 Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86 Copyright (C ) 微软公司。版权所有。

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:队列 testCCompiler.c

testCCompiler.c

清单资源编译:

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\build\CMakeFiles\CMakeTmp\Debug\cmTryCompileExec2312584318.exe" /INCREMENTAL /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid。 lib comdlg32.lib advapi32.lib /MANIFEST /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\Debug\cmTryCompileExec2312584318.exe.embed.manifest.res cmTryCompileExec2312584318.dir\Debug\testCCompiler。obj /机器:X86 /调试

链接:致命错误 LNK1123:转换为 COFF 期间失败:文件无效或损坏
[C:\OpenCV2.2\build\CMakeFiles\CMakeTmp\cmTryCompileExec2312584318.vcxproj]

完成构建项目
“C:\OpenCV2.2\build\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\build\CMakeFiles\CMakeTmp\cmTryCompileExec2312584318.vcxproj]

  0 Warning(s)
  1 Error(s)

经过时间 00:00:00.64

CMake 将无法正确生成此项目。调用堆栈(最近调用优先):CMakeLists.txt:47(项目)

配置不完整,出现错误!

有什么建议吗?

4

4 回答 4

5

安装windows 7 SDK然后安装VC-Compiler-KB2519277。为我解决了这个问题。

于 2013-08-14T11:26:42.480 回答
3

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

于 2013-11-21T09:19:58.757 回答
3

在 win7x64 上使用 CMake 时遇到同样的问题。该问题与 .NET 4.5 有关。如果您不想卸载 4.5,并且您的解决方案已经设置,请确保禁用增量链接,否则您将无法构建。

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

已经安装了 4.5 显然无法安装 4.0,所以使用 Windows 控制面板进行卸载(控制面板\程序\程序和功能)

CMake不认为这是一个错误,而是一个 MS 问题。

于 2013-07-18T21:07:26.433 回答
0

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

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

于 2017-02-25T16:45:24.697 回答