使用 OS X SDK 10.7 与 Xcode 7.3 和 CMake
Usign OS X SDK 10.7 with Xcode 7.3 and CMake
我在获取 Xcode 7.3 以使用 LLVM (7+) 和 C++11 针对 Mac SDK 10.7 编译项目时遇到严重问题。问题的根源似乎是 Xcode 或者我是 运行ning OS X 10.11 的事实。我的一些同事在使用旧的 Xcode 版本 (6) 编译相同的问题时没有遇到相同的问题。这是一般设置:
所需的库和 Headers 与 CMake 链接。多次检查所有内容的包含路径。创建的 Xcode 项目似乎也没有问题,我们已经将所有重要设置(C++ 方言、std 库、目标、定义等)与项目编译的系统进行了比较。
编译 vecLib 时出现实际错误 source.It 似乎是一组随机错误消息我会追溯到缺少 c++ std headers..这里有几个例子:
Explicite specialization of non-template class 'complex'
Redifinition of complex as different kind of symbol
有没有人 运行 在使用更新的 Xcode 来对抗旧的 SDK 时遇到类似的问题?
编辑
这里有更多信息。检查重定义背后的内容后,我发现由于某些奇怪的原因,文件中干扰前向声明的复杂定义来自 /usr/include/c++/4.2.1。我认为 header 已经过时或者至少与 c++11 不兼容。我再次检查了编译器使用的内容以及正确设置的 lib / 语言(std=c++11 和 stdlib=libc++)。我有一种奇怪的感觉,user/include 中的源不应该包含在内,但我不知道如何修复它。
编辑 2
我用 cpp -v
检查了标准包含路径并得到以下列表:
/usr/local/include
/Applications/XCode/.../XCodeDefault.xtoolchain/usr/bin/../lib/clang/7.3.0/include
/Applications/XCode/.../XCodeDefault.xtoolchain/usr/include
/usr/include
/System/Library/Frameworks
/Library/Frameworks
Xcode 工具链(第 3 条)中 complex 的定义是正确的,/usr/include 中的定义似乎是编译时使用的,导致错误消息. complex
的定义使用结构。
这里有什么问题? Xcode / Clang 或任何决定使用 usr/include 而不是包含工具链的问题?我检查了项目设置和编译器输出,没有明确包含此路径。
AppleClang 7+ 和 libc++ 似乎不支持来自 OS X SDK 10.7 的 vecLib。我不得不回到 Xcode 6 才能构建它。
我在获取 Xcode 7.3 以使用 LLVM (7+) 和 C++11 针对 Mac SDK 10.7 编译项目时遇到严重问题。问题的根源似乎是 Xcode 或者我是 运行ning OS X 10.11 的事实。我的一些同事在使用旧的 Xcode 版本 (6) 编译相同的问题时没有遇到相同的问题。这是一般设置:
所需的库和 Headers 与 CMake 链接。多次检查所有内容的包含路径。创建的 Xcode 项目似乎也没有问题,我们已经将所有重要设置(C++ 方言、std 库、目标、定义等)与项目编译的系统进行了比较。
编译 vecLib 时出现实际错误 source.It 似乎是一组随机错误消息我会追溯到缺少 c++ std headers..这里有几个例子:
Explicite specialization of non-template class 'complex'
Redifinition of complex as different kind of symbol
有没有人 运行 在使用更新的 Xcode 来对抗旧的 SDK 时遇到类似的问题?
编辑
这里有更多信息。检查重定义背后的内容后,我发现由于某些奇怪的原因,文件中干扰前向声明的复杂定义来自 /usr/include/c++/4.2.1。我认为 header 已经过时或者至少与 c++11 不兼容。我再次检查了编译器使用的内容以及正确设置的 lib / 语言(std=c++11 和 stdlib=libc++)。我有一种奇怪的感觉,user/include 中的源不应该包含在内,但我不知道如何修复它。
编辑 2
我用 cpp -v
检查了标准包含路径并得到以下列表:
/usr/local/include
/Applications/XCode/.../XCodeDefault.xtoolchain/usr/bin/../lib/clang/7.3.0/include
/Applications/XCode/.../XCodeDefault.xtoolchain/usr/include
/usr/include
/System/Library/Frameworks
/Library/Frameworks
Xcode 工具链(第 3 条)中 complex 的定义是正确的,/usr/include 中的定义似乎是编译时使用的,导致错误消息. complex
的定义使用结构。
这里有什么问题? Xcode / Clang 或任何决定使用 usr/include 而不是包含工具链的问题?我检查了项目设置和编译器输出,没有明确包含此路径。
AppleClang 7+ 和 libc++ 似乎不支持来自 OS X SDK 10.7 的 vecLib。我不得不回到 Xcode 6 才能构建它。