4
votes

Can somebody help me please, I am trying to configure CMake with Visual Studio 2010 Express but it's failed. The whole error message is bellow :

The C compiler identification is MSVC 16.0.30319.1 The CXX compiler identification is MSVC 16.0.30319.1 Check for working C compiler using: Visual Studio 10 Check for working C compiler using: Visual Studio 10 -- broken CMake Error at C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61 (message): The C compiler "C:/Program Files/Microsoft Visual Studio 10.0/VC/bin/cl.exe" is not able to compile a simple test program.

It fails with the following output:

Change Dir: C:/OpenCV2.2/build/CMakeFiles/CMakeTmp

Run Build Command:C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
cmTryCompileExec2312584318.vcxproj /p:Configuration=Debug
/p:VisualStudioVersion=10.0

Microsoft (R) Build Engine version 4.0.30319.17929

[Microsoft .NET Framework, version 4.0.30319.17929]

Copyright (C) Microsoft Corporation. All rights reserved.

Build started 30/05/2013 20:16:01.

Project
"C:\OpenCV2.2\build\CMakeFiles\CMakeTmp\cmTryCompileExec2312584318.vcxproj" on node 1 (default targets).

PrepareForBuild:

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

InitializeBuildStatus:

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

because "AlwaysCreate" was specified.

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: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) Microsoft Corporation. All rights reserved.

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

Link:

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 /machine:X86 /debug

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
[C:\OpenCV2.2\build\CMakeFiles\CMakeTmp\cmTryCompileExec2312584318.vcxproj]

Done Building Project
"C:\OpenCV2.2\build\CMakeFiles\CMakeTmp\cmTryCompileExec2312584318.vcxproj" (default targets) -- FAILED.

Build FAILED.

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

(default target) (1) ->

(Link target) ->

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)

Time Elapsed 00:00:00.64

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

Configuring incomplete, errors occurred!

any advice?

4

4 Answers

5
votes

Install the windows 7 SDK then install VC-Compiler-KB2519277. Fixed the issue for me.

3
votes

Was having the same problem with CMake on win7x64. The problem relates to .NET 4.5. If you don't want to uninstall 4.5, and your Solution is already setup, make sure to disable incremental linking, otherwise you will not be able to build.

To fix your CMake issue, you will have to uninstall .NET 4.5 on your machine and re-install .NET 4.0 in order to get CMake to work (4.5 removes all of 4.0's assemblies, etc!)

Apparently can't install 4.0 while 4.5 is already installed, so use Windows Control Panel to do the uninstall (Control Panel\Programs\Programs and Features)

CMake does not consider this a bug, rather it is a MS issue.

3
votes

If you have Net framework 4.5 installed, you have to update VS 2010 to SP1 in order to make some stuff work correctly. Sometimes you can overcome the problem by just setting off incremental build in project Configurations > Linker settings. If you have VS 2012 installed after VS 2010, then before updating the VS 2010, you need to search at MSDN for the article about avoiding dependencies. My guess is that you will have to uninstall newer versions before upgrading the older ones to new service packs. There is a set of pages in MSDN explaining each step. Just google them. I also had this problem with CMake. This is how i solved it. Furthermore, i already had Windows 7 SDK installed. So i am not sure if it is needed to be installed to solve this problem or not.

0
votes

In my case installing the VC2010 Service Pack 1 solved my issue after a reboot. Didn't installed the Windows SDK 7.1 at all or anything else.

If you don't want to re-install .NET Frameworks and/or making 400mb Windows SDK updates, try this lighter solution first.