【问题标题】:Xcode linking issue with CMake generated projectXcode 与 CMake 生成项目的链接问题
【发布时间】:2015-01-02 19:16:30
【问题描述】:

版本信息:CMake 3.0.2、XCode 5 (LLVM 5.1)

我正在构建一个 AudioUnit,但我遇到了臭名昭著的“std::__1...”链接问题(如同时使用 libc++&libstdc++ 时),但是我将 CMAKE_CXX_FLAGS 设置为“-std=c++ 11 -stdlib=libc++" 在顶级 CMake 级别,因此所有相关目标都使用这些标志。

然而,当搜索“libstdc++”时,AudioUnit 目标依赖于 libstdc++.dylib(尽管从未在任何地方设置),当我在 Xcode 中将 LLVM“C++ 标准库”显式设置为 libc++ 时,链接正常(!! )

我走到了尽头,我不知道如何强制 AU 目标依赖于 libc++ 而不是 libstdc++。

是否有任何明确的 CMake XCODE 属性可用于此?

【问题讨论】:

    标签: xcode5 cmake


    【解决方案1】:

    构建它的相关标志:

    SET(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11")
    SET(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
    

    然后它编译+链接没有问题。不需要额外的 -std=c++11... C++ 标志。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      • 2015-08-08
      • 1970-01-01
      相关资源
      最近更新 更多