我是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/

10-16 10:32