Я очень новичок в программировании на C ++, и у меня возникли некоторые проблемы с использованием CMake для добавления репозитория azure-storage-cpp в мое решение VS.
Вот ошибка сборки, которую я получаю в VS, когда я пытаюсь собрать проект хранилища Azure.
CMake не может определить язык компоновщика для цели: azurestorage
Вот моя запись CMake:
ExternalProject_Add( azurestorage
PREFIX azurestorage
GIT_REPOSITORY https://github.com/Azure/azure-storage-cpp.git
GIT_TAG master
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../azurestorage
SOURCE_SUBDIR Microsoft.WindowsAzure.Storage)
Я пытался добавить SET_TARGET_PROPERTIES(azurestorage PROPERTIES LINKER_LANGUAGE CXX)
в мой файл CMakeList.txt, но это не помогает. Я также читал на других форумах, что в репозитории должны быть файлы .cpp и .h в корневом каталоге, чтобы CMake знал, на каком языке. Однако, поскольку хранилище azure-storage-cpp не мое, у меня нет возможности добавлять такие файлы.
Я использую VS2015 на Windows10
Что я делаю неправильно? Любая помощь приветствуется.
Я дал вашему примеру попытку, и соответствующее сообщение об ошибке больше относится к выводу CMake:
-- Unsupported Build Platform.
Так что, если вы хотите добавить его, не используйте ExternalProject_Add()
, Библиотека включена CMakeLists.txt
для Unix / Linux / OSX.
Но это идет с существующим .vcproj
для VS2015, который вы можете включить в свой проект с include_external_msproject()
:
find_package(Git REQUIRED)
execute_process(
COMMAND "${GIT_EXECUTABLE}" clone https://github.com/Azure/azure-storage-cpp.git
)
set(NUGET_EXECUTABLE "${CMAKE_CURRENT_BINARY_DIR}/azure-storage-cpp/tools/NuGet.exe")
execute_process(
COMMAND "${NUGET_EXECUTABLE}" restore "azure-storage-cpp/Microsoft.WindowsAzure.Storage.v140.sln")
include_external_msproject(
azurestorage
"azure-storage-cpp/Microsoft.WindowsAzure.Storage/Microsoft.WindowsAzure.Storage.v140.vcxproj")
Других решений пока нет …