版本信息: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属性用于此目的?
答案 0 :(得分:0)
使其构建的相关标志:
SET(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11")
SET(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
然后它编译+链接没有问题。不需要额外的-std = c ++ 11 ... C ++标志。