Xcode将问题与CMake生成的项目联系起来

时间:2014-11-06 10:15:24

标签: xcode5 cmake

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

我正在构建一个AudioUnit并且我得到了臭名昭着的“std :: __ 1 ...”链接问题(如同同时使用libc ++和libstdc ++),但我将CMAKE_CXX_FLAGS设置为“-std = c ++ 11 -stdlib = libc ++“处于最高CMake级别,因此所有依赖目标都使用这些标志。

然而,当grepping“libstdc ++”时,AudioUnit目标依赖于libstdc ++。dylib(虽然从未在任何地方设置),当我在Xcode中将LLVM“C ++标准库”显式设置为libc ++时,链接会很好(!! )

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

是否有明确的CMake XCODE属性用于此目的?

1 个答案:

答案 0 :(得分:0)

使其构建的相关标志:

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

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