我是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文件中,但没有帮助。我还在其他论坛上读过,回购协议需要在根目录中有一个.cpp和.h文件,CMake才能知道哪种语言。但是,由于azure-storage-cpp仓库不是我的仓库,因此我无法添加此类文件。我在Windows10上使用VS2015
我究竟做错了什么?任何和所有帮助表示赞赏。
最佳答案
我已经尝试了您的示例,并且相关的错误消息更多地位于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"
)
关于c++ - CMake无法确定目标的链接器语言:azurestorage错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43036477/