it-swarm.com.de

CMake: MSBuild-Befehl konnte nicht ausgeführt werden: MSBuild.exe

Ich versuche, FIAT mit CMake GUI unter Windows 10 zu erstellen. 

CMake Error at CMakeLists.txt:3 (project):
  Failed to run MSBuild command:

    MSBuild.exe

  to get the value of VCTargetsPath:
Configuring incomplete, errors occurred!

Ich habe CMake für die Verwendung des Visual Studio 15 2017-Compilers konfiguriert.

Wie kann ich das beheben? 

Bei Bedarf ist hier die Datei CMakeLists.txt

cmake_minimum_required(VERSION 3.2)
include(CheckCXXCompilerFlag)
project(FIAT CXX)

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

if(CHECK_CXX_COMPILER_USED1)
# Using Visual Studio C++
elseif("${CMAKE_CXX_COMPILER_ID}x" STREQUAL "MSVCx")
# Using Intel C++
elseif("${CMAKE_CXX_COMPILER_ID}x" STREQUAL "Intelx")
else(CHECK_CXX_COMPILER_USED1)
    # GCC or Clang
    # At least C++11
    CHECK_CXX_COMPILER_FLAG("-std=c++17" COMPILER_SUPPORTS_CXX17)
    CHECK_CXX_COMPILER_FLAG("-std=c++1z" COMPILER_SUPPORTS_CXX1Z)
    CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)
    CHECK_CXX_COMPILER_FLAG("-std=c++1y" COMPILER_SUPPORTS_CXX1Y)
    CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
    if(COMPILER_SUPPORTS_CXX17)
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
    elseif(COMPILER_SUPPORTS_CXX1Z)
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1z")
    elseif(COMPILER_SUPPORTS_CXX14)
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
    elseif(COMPILER_SUPPORTS_CXX1Y)
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y")
    elseif(COMPILER_SUPPORTS_CXX11)
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
    else(COMPILER_SUPPORTS_CXX17)
        message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
    endif(COMPILER_SUPPORTS_CXX17)

    if(CHECK_CXX_COMPILER_USED2)
    elseif("${CMAKE_CXX_COMPILER_ID}x" MATCHES "Clangx")
        # Using Clang
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-global-constructors")
    elseif("${CMAKE_CXX_COMPILER_ID}x" STREQUAL "GNUx")
        # Using GCC
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic")
    endif(CHECK_CXX_COMPILER_USED2)
endif(CHECK_CXX_COMPILER_USED1)

#OpenCV
FIND_PACKAGE(OpenCV REQUIRED core imgproc highgui imgcodecs)
if(OpenCV_Found)
    INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIR})
endif(OpenCV_Found)

#Boost
FIND_PACKAGE(Boost REQUIRED program_options filesystem)
if(Boost_FOUND)
    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
else(Boost_FOUND)
    set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "C:/local/boost_1_60_0/")
    set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "C:/local/boost_1_60_0/lib64-msvc-14.0")
    Find_PACKAGE(Boost)
    if(Boost_FOUND)
        INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
    endif(Boost_FOUND)
endif(Boost_FOUND)

set(Boost_USE_STATIC_LIBS        OFF)
set(Boost_USE_MULTITHREADED      ON)
set(Boost_USE_STATIC_RUNTIME     OFF)
set(BOOST_ALL_DYN_LINK           OFF)

# Annotation Lib
file(GLOB_RECURSE FIAT_LIB_HEADERS
    "${FIAT_SOURCE_DIR}/src/image/*.h" "${FIAT_SOURCE_DIR}/src/annotation/*.h" "${FIAT_SOURCE_DIR}/src/tools/*.h"
)

file(GLOB_RECURSE FIAT_LIB_SRC
    "${FIAT_SOURCE_DIR}/src/image/Image.cpp" "${FIAT_SOURCE_DIR}/src/annotation/*.cpp" "${FIAT_SOURCE_DIR}/src/tools/*.cpp"
)

add_library(utilities ${INCLUDE_DIRECTORIES} ${FIAT_LIB_HEADERS} ${FIAT_LIB_SRC})
target_link_libraries (utilities ${Boost_LIBRARIES} ${OpenCV_LIBRARIES} )

if(CHECK_CXX_COMPILER_USED_UTILITIES)

elseif("${CMAKE_CXX_COMPILER_ID}x" STREQUAL "MSVCx")
  # using Visual Studio C++
elseif("${CMAKE_CXX_COMPILER_ID}x" STREQUAL "Intelx")
  # using Intel C++
else()
  # GCC or Clang
    target_link_libraries (utilities m )
endif(CHECK_CXX_COMPILER_USED_UTILITIES)

# Annotate
file(GLOB_RECURSE FIAT_ANNOTATE_HEADERS
)

file(GLOB_RECURSE FIAT_ANNOTATE_SRC
    "${FIAT_SOURCE_DIR}/src/app/annotate.cpp"
)

add_executable(annotate ${INCLUDE_DIRECTORIES} ${FIAT_LIB_HEADERS} ${FIAT_ANNOTATE_HEADERS} ${FIAT_ANNOTATE_SRC})
target_link_libraries(annotate utilities ${Boost_LIBRARIES} ${OpenCV_LIBRARIES})


if(CHECK_CXX_COMPILER_USED_ANNOTATE)
elseif("${CMAKE_CXX_COMPILER_ID}x" STREQUAL "MSVCx")
  # using Visual Studio C++
elseif("${CMAKE_CXX_COMPILER_ID}x" STREQUAL "Intelx")
  # using Intel C++
else()
  # GCC or Clang
    target_link_libraries (annotate m)
endif(CHECK_CXX_COMPILER_USED_ANNOTATE)

Gemäß Ihrer Empfehlung habe ich versucht, aus dem Developer Command Prompt for VS2015 zu bauen, erhielt aber immer noch die folgende Fehlermeldung:

msbuild FIAT.vcxproj /p:configuration=debug
Microsoft (R) Build Engine version 14.0.25420.1
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 6/12/2017 5:16:26 AM.
Project "E:\Work\FastImageAnnotationTool-master\FIAT.vcxproj" on node 1 (default targets).
E:\Work\FastImageAnnotationTool-master\FIAT.vcxproj(1,1): error MSB4067: The element <#text> beneat
h element <Project> is unrecognized.
Done Building Project "E:\Work\FastImageAnnotationTool-master\FIAT.vcxproj" (default targets) -- FA
ILED.


Build FAILED.

"E:\Work\FastImageAnnotationTool-master\FIAT.vcxproj" (default target) (1) ->
  E:\Work\FastImageAnnotationTool-master\FIAT.vcxproj(1,1): error MSB4067: The element <#text> bene
ath element <Project> is unrecognized.

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.03

Hier ist die .vcxproj-Datei meines Projekts

<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">  
  <ItemGroup>  
    <ProjectConfiguration Include="Debug|Win32">  
      <Configuration>Debug</Configuration>  
      <Platform>Win32</Platform>  
    </ProjectConfiguration>  
    <ProjectConfiguration Include="Release|Win32">  
      <Configuration>Release</Configuration>  
      <Platform>Win32</Platform>  
    </ProjectConfiguration>  
  </ItemGroup>  
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />  
  <PropertyGroup>  
    <ConfigurationType>Application</ConfigurationType>  
    <PlatformToolset>v120</PlatformToolset>  
  </PropertyGroup>  
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />  
  Annotation.cpp Annotations.cpp app/annotate.cpp - image/Image.cpp test/image-test.cpp - tools/tools.cpp

  <ItemGroup>  
    <ClInclude Include="/src/annotation/Annotation.cpp" />  
  </ItemGroup>  
  <ItemGroup>  
    <ClInclude Include="/src/annotation/Annotation.h" />  
  </ItemGroup>  

  <ItemGroup>  
    <ClInclude Include="/src/annotation/Annotations.cpp" />  
  </ItemGroup>  
  <ItemGroup>  
    <ClInclude Include="/src/annotation/Annotation.h" />  
  </ItemGroup>  

  <ItemGroup>  
    <ClInclude Include="/src/app/annotate.cpp" />  
  </ItemGroup>  

  <ItemGroup>  
    <ClInclude Include="/src/image/Image.cpp" />  
  </ItemGroup>  
  <ItemGroup>  
    <ClInclude Include="/src/image/Image.h" />  
  </ItemGroup>

  <ItemGroup>  
    <ClInclude Include="/src/test/image-test.cpp" />  
  </ItemGroup> 

  <ItemGroup>  
    <ClInclude Include="/src/tools/tools.cpp" />  
  </ItemGroup>  
  <ItemGroup>  
    <ClInclude Include="/src/tools/tools.h" />  
  </ItemGroup> 

  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />  
</Project>  
20
A_Matar

Was für mich gearbeitet hat war

  1. Datei> Cache löschen
  2. Klicken Sie auf Konfigurieren 
  3. Auswählen der richtigen Version von Visual Studio aus der Dropdown-Liste, d.h. - die auf Ihrem Rechner installiert ist. In meinem Fall war es "Visual Studio 15 2017" unter Windows 10.

Hoffe das hilft. Ps. - Ich bin ein Stack bei StackOverflow. Verzeihen Sie mich, wenn ich falsch liege.

5
Yatin Khurana

Der Fehler liest einen fehlenden Pfad an MSBuild.exe.

Die mögliche Lösung hierfür ist die Installation von MSBuild.exe

Blättern Sie nach unten zu Andere Tools und Frameworks und installieren Sie Build-Tools für Visual Studio

4
Abhishek Jain

Verwenden Sie die Visual Studio-Entwicklerkonsole? Wenn ich cmake --build . In der eingebauten Windows-Befehlszeile (cmd.exe) eingebe, schlagen meine Builds auf ähnliche Weise fehl. Wenn ich stattdessen die Konsole des Visual Studio-Entwicklers verwende, funktionieren die Dinge besser, obwohl ich /p:Platform="Win32" Als Tag hinzufügen muss, wenn ich msbuild direkt aufrufe gefundene oder falsche Pfade. Über die Visual Studio-Befehlszeile erhalten Sie eine Reihe von Umgebungsvariablen, die von MSBuild zum Kompilieren Ihres Projekts benötigt werden.

3
Stewart

Ich hatte das gleiche Problem, möglicherweise aus demselben Grund.

Ich habe CMake für die Verwendung des Visual Studio 15 2017-Compilers konfiguriert.

[...]

Ich habe versucht, aus dem Developer Command Prompt for VS2015 zu bauen

Wenn ich dies richtig lese, haben Sie Visual Studio 14 (d. H. Visual Studio 2015) installiert und versucht, CMake mit dem Visual Studio 15 (d. H. Visual Studio 2017) Generator zu konfigurieren.

Achten Sie genau auf die Versionsnamen. Sie können verwirrend sein. Visual Studio 15 stimmt nicht mit Visual Studio 2015 überein. Der Programmname kann eine vierstellige Jahreszahl oder eine zweistellige Versionsnummer enthalten - oder beides, wie es bei der CMake-GUI der Fall ist. Siehe https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#History und vergleichen Sie die aufgelisteten Produktnamen und Versionsnummern.

3
Maria V.

Ich habe das jetzt schon mehrmals getroffen. Wenn Sie Umgebungsvariablen wie TEMP und TMP auf einen Pfad setzen, der nicht beschreibbar ist oder nicht existiert, gibt CMake diesen Fehler aus, da MSBUILD.exe beim Generieren einiger Dateien nicht ausgeführt wurde. 

1
ZHANG Zikai

Ich habe das Problem behoben, indem ich die Version von Visual Studio korrigierte:

cmake -G "Visual Studio 12 2013 Win64"

Verfügbare Generatoren:

  Visual Studio 15 2017 [Arch] = Generates Visual Studio 2017 project files. 
                                 Optional [Arch] can be "Win64" or "ARM".    
  Visual Studio 14 2015 [Arch] = Generates Visual Studio 2015 project files. 
                                 Optional [Arch] can be "Win64" or "ARM".    
  Visual Studio 12 2013 [Arch] = Generates Visual Studio 2013 project files. 
                                 Optional [Arch] can be "Win64" or "ARM".    
  Visual Studio 11 2012 [Arch] = Generates Visual Studio 2012 project files. 
                                 Optional [Arch] can be "Win64" or "ARM".    
  Visual Studio 10 2010 [Arch] = Generates Visual Studio 2010 project files. 
                                 Optional [Arch] can be "Win64" or "IA64".   
  Visual Studio 9 2008 [Arch]  = Generates Visual Studio 2008 project files. 
                                 Optional [Arch] can be "Win64" or "IA64".   
0
dimon4eg

installhttp://www.Microsoft.com/de-de/download/confirmation.aspx?id=40760 MSbuild-Tools

CMD als normaler Benutzer ausführenGeben Sie den Befehl MsBuild ein und klicken Sie auf die Installation. ** ** Abgeschlossen

0
Hansa Tharuka