2013-04-10 1 views
3

CMake 2.8.10.2 Windows 용 Visual Studio 2012 (Windows 7)에서 Visual Studio 2012를 사용하여 프로젝트 구성을 거부했습니다. CMake는 Microsoft 컴파일러에서 더 이상 지원하지 않는 설정을 일부 추가합니다. 옵션 구문 오류 LINK : 치명적인 오류 LNK1117 :Visual Studio 2012/2013에 CMake가 깨졌습니다.

는 내가 해결 방법이 있습니까 시도하고 아주 기본적인 cmake 파일

cmake_minimum_required (VERSION 2.6) 
add_executable(test test.cpp) 

과 같은 결과를 얻었다 '매니페스트 포함'?

출력 창 쇼 :

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

    It fails with the following output: 

    Change Dir: C:/tmp/testCmake/build/CMakeFiles/CMakeTmp 



    Run Build Command:C:\PROGRA~2\MICROS~2.0\Common7\IDE\devenv.com 
    CMAKE_TRY_COMPILE.sln /build Debug /project cmTryCompileExec3122367237 



    Microsoft (R) Microsoft Visual Studio 2012 Version 11.0.51106.1. 

    Copyright (C) Microsoft Corp. All rights reserved. 

    1>------ Build started: Project: cmTryCompileExec3122367237, Configuration: 
    Debug Win32 ------ 

    1> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 
    for 80x86 

    1> Copyright (C) Microsoft Corporation. All rights reserved. 

    1> 

    1> 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"cmTryCompileExec3122367237.dir\Debug\\" 
    /Fd"C:/tmp/testCmake/build/CMakeFiles/CMakeTmp/Debug/cmTryCompileExec3122367237.pdb" 
    /Gd /TC /analyze- /errorReport:prompt /Zm1000 testCCompiler.c 

    1> 

    1> testCCompiler.c 

    1>LINK : fatal error LNK1117: syntax error in option 'manifest:embed' 

    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped 
    ========== 





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



Configuring incomplete, errors occurred! 
+0

저는 여러 프로젝트에서 VS2012를 1 개월 이상 사용했습니다. VTK, ITK, DCMTK, GDCM 모두 내 코드뿐만 아니라 잘 빌드됩니다. 나는 CMake 2.8.10.2를 사용하고있다. 비록 내가 거의 32 비트를 더 이상 만들지는 않지만. – drescherjm

+0

저는 CMake를 Visual Studio 2012와 함께 사용해도 문제없이 꽤 오랫동안 사용했습니다. 며칠 전 Visual Studio를 다시 설치하고 최신 업데이트를 설치 한 다음 문제가 발생했습니다. – jgaa

+0

오류 메시지에서 : cl.exe (VS C++ 컴파일러)를 찾을 수 없습니다 - cl.exe는 어디에 설치되어 있습니까? 컴파일러가 작동하는지 알아 보려면 cl (http://stackoverflow.com/questions/7865432/command-line-compile-using-cl-exe)에서 설명한대로 명령 줄을 사용하여 컴파일 해보십시오. 어쩌면 VS 설치가 엉망이 될 수도 있습니다. – Vertexwahn

답변

3

CMake CMake 차례로 컴파일러를 호출 비주얼 스튜디오 2012, 호출 있습니다, 당신은 제공 로그에 비주얼 스튜디오 2012

잘 2.8 일

Microsoft (R) Microsoft Visual Studio 2012 Version 11.0.51106.1.

[...]

1> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86

이것은 아마도 난을 의미, 비주얼 스튜디오 2008 (15.x VS2012의 컴파일러는 17.x가 있어야한다) VS2012의 설치는 VS2008의 도구 세트를 사용하도록 구성됩니다. 아마도 CMake를 통해서가 아니라 Visual Studio에서 직접 빌드 할 때도 똑같은 일이 일어날 것입니다.

이것은 속성 시트 Microsoft.Cpp.Win32.user.props (또는 x64 용으로 작성하는 경우 Microsoft.Cpp.x64.user.props)의 의도하지 않은 변경으로 인해 발생할 수 있습니다. 이러한 파일은 %LOCALAPPDATA%\Microsoft\MSBuild\v4.0에 있습니다. 이러한 등록 정보 시트에서 VS2008의 디렉토리가 참조되는 경우 이는 문제의 원인 일 수 있습니다.

이 문제를 해결하려면, 당신은 수동 (완전 VS2008 폴더를 참조 XML 요소를 제거) 상기 파일을 편집하거나 this answer에 주어진 단계를 수행 할 수 있습니다

  1. Open any C++ project in Visual Studio 2012.
  2. Open View -> Other Windows -> Property Manager
  3. Double click on Microsoft.Cpp.Win32.user
  4. Go to VC++ Directories
  5. Rows which have been changed are bold. on all bold rows, click inside the text field, then on the Dropdown menu select inherit from parent or Project Defaults
  6. Click Apply, save and then close the dialog.
+0

감사합니다. 64 비트 빌드를 컴파일하려고했지만 Cmake 및 Visual Studio 2013에서 동일한 문제가 수정되었습니다. – Macke

0

이 작동하지 않았다을 나를. 그러나 문제가되는 파일 (C : \ Users \ AppData \ Local \ Microsoft \ MSBuild \ v4.0 \ Microsoft.Cpp.Win32.user.props)을 삭제할 수 있었으며 Visual Studio에서 파일을 다시 만들었습니다. 문제는 VS2012 모두 해결 및 2013 년

0

는 또한 오류가 점점되었다 : '삽입 매니페스트'

그것은 윈도우 7에서 일어난, 비주얼 스튜디오 2013 옵션 구문 오류 :

LINK : 치명적인 오류 LNK1117을 커뮤니티.

저는 많은 솔루션을 시도했지만 컴퓨터에서 Visial Studio 2010을 완전히 제거하는 것이 유일한 방법이었습니다. 그 밖의 일은 없었습니다. VS2013 내에서 $ VCInstallDir 변수가 여전히 2010 설치를 가리키고 있다는 것이 문제를 추적했습니다. 결과적으로 잘못된 LibarayPath 설정과 잘못된 toolchain execs가 사용되었습니다 (적절한 "PlatformToolset"설정이 있음에도 불구하고).

요약하면 :

  1. 당신이 프로젝트의 모든 라이브러리 프로젝트에서 동일한 설정은 당신이 사용되었는지 정확한 라이브러리 디렉토리를 만들 필요가
  2. 에 따라 달라집니다에 설정 적절한 "PlatformToolset을"이 필요합니다 $ LibraryPath가 올바른지 확인하고 프로젝트 설정에서 직접 재정의하지 않으면 Visual Studio 내부 자동화를 통해 $ VCInstallDir에 의존하므로 해당 변수도 확인하십시오.
  3. 문제 2를 해결하려면 아마도 Visual Studio 2010은 혼란스럽고 아마도 그렇게할만한 것이 없기 때문에 용감하다.
관련 문제