【问题标题】:Mac OS X 10.8 and llvm/clang 3.3 via homebrewMac OS X 10.8 和 llvm/clang 3.3 通过自制软件
【发布时间】:2013-06-28 16:02:54
【问题描述】:

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

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

现在我想我可以使用自制软件进行切换。所以我所做的是发出以下命令:

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.

所以显然没有找到标准头文件,找到了 clang 3.2。什么可能导致此问题?

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

【问题讨论】:

  • 你最终想通了吗?我也有同样的问题...
  • 刚刚更新了XCode,新版本出来了。

标签: macos clang llvm upgrade homebrew


【解决方案1】:

在构建参数中添加-stdlib=libc++ 以配置clang 以使用libc++。

【讨论】:

  • 这对我有用! brew install cpp-ethereum --with-evmjit
猜你喜欢
  • 2013-08-12
  • 2012-08-11
  • 2012-09-15
  • 1970-01-01
  • 2013-02-15
  • 2013-05-03
  • 2011-08-08
  • 2021-08-18
  • 2012-08-08
相关资源
最近更新 更多