macos - Mac OS X 10.8 和 llvm/clang 3.3(通过 Homebrew 软件)

标签 macos clang llvm upgrade homebrew

我在 Mac OS X 10.8 上安装了最新版本的 XCode 和 LLVM 3.2。现在我想切换到 llvm/clang 3.3。

在我当前的项目中,我将 CMake 与 clang 3.2 和 libc++ 一起使用,它们运行良好。

现在我想我可以使用 Homebrew 程序进行切换。所以我所做的是发出以下命令:

brew install llvm --with-clang --with-asan

这构建了新的 clang 并在/usr/local/bin 中更新了它。

使用以下参数运行 cmake:

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=/usr/local/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/bin/clang++ ../

成功,我的 CMake 输出如下所示:


-- Compiler: Clang
-- CXX_FLAGS: -Wall -std=c++11 -stdlib=libc++
-- Boost version: 1.53.0
-- adding include directory: /usr/local/include
-- adding include directory: /usr/local/include
-- adding include directory: /usr/local/include
-- adding include directory: /usr/local/include
-- Boost version: 1.53.0
-- Found the following Boost libraries:
--   filesystem
--   system
--   exception
-- Boost version: 1.53.0
-- Found the following Boost libraries:
--   unit_test_framework
--   thread
-- Configuring done
-- Generating done

但是如果我开始构建我的项目,我会收到一个错误:


[  2%] Building CXX object code/CMakeFiles/.../resource.cpp.o
In file included from /Users/.../code/net/resource.cpp:1:
/Users/.../resource.hpp:6:10: fatal error: 'string' file not found
#include <string>
         ^
1 error generated.

很明显,没有找到标准 header ,而在 clang 3.2 中却找到了标准 header 。什么可能导致此问题?

备注: 我认为我的问题是brew 使用 libstdc++ 而不是 libc++ 构建 llvm/clang。有什么办法可以强制它使用 libc++ 吗?或者有没有其他简单的方法可以在 OS X 上升级 clang 并使用 libc++?

最佳答案

-stdlib=libc++ 添加到构建参数中,以将 clang 配置为使用 libc++。

关于macos - Mac OS X 10.8 和 llvm/clang 3.3(通过 Homebrew 软件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17368978/

相关文章:

CSS object-fit 封面正在拉伸(stretch) Mac 上 Chrome 中的特定图像

xcode - 使用 Postgis 从 Postgres 10 升级到 11

xcode - 在基本 block 的中间发现终止符

x86 - 运行 x86 程序 _on_ llvm

macos - 如果我执行与特定模式匹配的命令,如何让 Bash 提示我?

c++ - 使用 QuaZip 在 Mac 上提取 .app

c++ - libclang clang_getSpellingLocation 访问冲突

c++ - 未定义模板的隐式实例化 : Boost Bug or Clang Bug?

c++ - 错误 : not. exe 已停止工作 - 尝试构建 LLVM 时

macos - Launchpad 图标不再显示 NSDockTile 徽章