I am trying to build FIAT using CMake
GUI on windows 10.
CMake Error at CMakeLists.txt:3 (project): Failed to run MSBuild command: MSBuild.exe to get the value of VCTargetsPath: Configuring incomplete, errors occurred!
I configured CMake to use Visual Studio 15 2017 compiler.
How can I fix this?
If needed, here is the CMakeLists.txt file
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)
As per your recommendation, I tried building from the Developer Command Prompt for VS2015
but still got the following error:
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
Here is my project's .vcxproj
file
<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>
Install MSBuild For a typical default installation on Windows 10, MSBuild.exe is under the installation folder in MSBuild\Current\Bin. In the installer, make sure MSBuild tools for the workloads you use are selected, and choose Install.
To run MSBuild at a command prompt, pass a project file to MSBuild.exe, together with the appropriate command-line options. Command-line options let you set properties, execute specific targets, and set other options that control the build process.
Click on System and Security and then on System. In the left pane, click on Advanced system settings. At the very bottom of the pop up, click on Environment Variables. Edit the Path variable and append the folder's path that contains the MSBuild.exe to it (e.g., ;C:\Windows\Microsoft.NET\Framework64\v4.
For example, the path to MSBuild.exe installed with Visual Studio 2019 Community is C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe You can also use the following PowerShell module to locate MSBuild: vssetup.
The error reads a missing Path to MSBuild.exe
The possible solution to this is to install MSBuild.exe
Scroll down to Other Tools and Frameworks, and install Build Tools For Visual Studio
What Worked for me was
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With