4

Visual Studio 2010 Express で CMake を構成しようとしていますが、失敗しました。エラーメッセージ全体は次のとおりです。

C コンパイラの ID は MSVC 16.0.30319.1 です CXX コンパイラの ID は 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) ビルド エンジン バージョン 4.0.30319.17929

[Microsoft .NET Framework、バージョン 4.0.30319.17929]

Copyright (C) Microsoft Corporation. 全著作権所有。

ビルドは 2013 年 5 月 30 日 20:16:01 に開始されました。

ノード 1 のプロジェクト
"C:\OpenCV2.2\build\CMakeFiles\CMakeTmp\cmTryCompileExec2312584318.vcxproj" (既定のターゲット)。

ビルドの準備:

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: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 ビット C/C++ 最適化コンパイラ バージョン 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

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\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

3

win7x64 の CMake で同じ問題が発生していました。この問題は .NET 4.5 に関連しています。4.5 をアンインストールしたくない場合で、ソリューションが既にセットアップされている場合は、インクリメンタル リンクを無効にしてください。そうしないと、ビルドできません。

CMake の問題を修正するには、マシンで .NET 4.5 をアンインストールし、CMake を機能させるために .NET 4.0 を再インストールする必要があります (4.5 は 4.0 のアセンブリをすべて削除します)。

4.5 が既にインストールされている場合は 4.0 をインストールできないようです。そのため、Windows コントロール パネルを使用してアンインストールを行います (コントロール パネル\プログラム\プログラムと機能)。

CMakeはこれをバグとは見なさず、むしろ MS の問題です。

于 2013-07-18T21:07:26.433 に答える