CMake не может определить язык компоновщика для цели: ошибка Azurestorage

Я очень новичок в программировании на 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

Что я делаю неправильно? Любая помощь приветствуется.

1

Решение

Я дал вашему примеру попытку, и соответствующее сообщение об ошибке больше относится к выводу 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")
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]