【问题标题】:Using C++0x in Xcode 4.2 project via CMake通过 CMake 在 Xcode 4.2 项目中使用 C++0x
【发布时间】:2011-12-14 08:15:21
【问题描述】:

我正在使用 CMake 在 OSX Lion 上为 Xcode 4.2 生成项目文件,并且我正在使用 LLVM 中的一些 C++0x 功能,例如 nullptr 和 auto。为了使用这些,Xcode 需要设置 2 个项目设置:

C++ 语言方言设置为 C++0x [-std=C++0x]

C++ 标准库设置为 libc++(支持 C++'0X 的 LLVM C++ 标准库)

目前每次生成Xcode项目,我都要进去手动调整这些设置。

有没有办法在 CMake 中指定这些设置?

谢谢

【问题讨论】:

  • 嗨,您找到解决方案了吗?无论我为 Cmake 指定什么编译器,xcode 4.2 项目总是选择默认编译器。

标签: c++ xcode cmake c++11


【解决方案1】:

在深入研究后,这些是设置适当 xcode 设置的命令:

set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++0x")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -stdlib=libc++ -g -Wall")

我认为设置 c++ 标志是多余的,所以没有最后一行也可以工作。

希望有帮助!

【讨论】:

  • 没有为我选择编译器。它仍然使用默认的“c++”
  • 你真的是指第四个set命令中的CMAKE_C_FLAGS吗?
【解决方案2】:

第一个您可以更改 CMAKE_CXX_FLAGS 属性并添加它: SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -std=C++0x")

至于选择 GCC 而不是 Clang,您必须使用以下内容: Switching between GCC and Clang/LLVM using CMake

这将覆盖 CLang 默认值以使用 GCC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-10
    • 2012-09-24
    • 2012-03-02
    • 1970-01-01
    相关资源
    最近更新 更多