我是C ++编程的新手,并且在使用CMake将azure-storage-cpp存储库添加到我的VS解决方案时遇到了一些麻烦。
当我尝试构建azure存储项目时,这是我在VS中遇到的构建错误。
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文件中,但它没有帮助。我还在其他论坛上读到,repo需要在根目录中有一个.cpp和.h文件,以便CMake知道哪种语言。但是由于azure-storage-cpp repo不是我的,我没有能力添加这些文件。
我在Windows10上使用VS2015
我做错了什么?任何和所有的帮助表示赞赏。
答案 0 :(得分:0)
我已尝试过您的示例,相关的错误消息更多地是CMake输出的顶部:
-- Unsupported Build Platform.
因此,如果您想添加它,请不要使用ExternalProject_Add()
。包含CMakeLists.txt
的图书馆适用于Unix/Linux/OSX。
但它带有VS2015的现有.vcproj
,您可以使用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"
)