【问题标题】:CMake can not determine linker language for target: azurestorage errorCMake 无法确定目标的链接器语言:azurestorage 错误
【发布时间】:2017-03-27 01:14:33
【问题描述】:

我是 C++ 编程的新手,在使用 CMake 将 azure-storage-cpp 存储库添加到我的 VS 解决方案时遇到了一些麻烦。

这是我在尝试构建天蓝色存储项目时在 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 存储库不是我的,我无法添加此类文件。

我在 Windows10 上使用 VS2015

我做错了什么?感谢您提供任何和所有帮助。

【问题讨论】:

    标签: c++ azure cmake


    【解决方案1】:

    我已经尝试过您的示例,相关的错误消息更多地位于 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"
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多