通过 homebrew 安装 Mac OS X 10.8 和 llvm/clang 3.3

5

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

在我的当前项目中,我使用与clang 3.2和libc++一起使用的CMake,它们可以正常工作。

现在我想使用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.

很明显,标准头文件未找到,而clang 3.2中已经找到了。这个问题可能是什么原因引起的呢?

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


你最终解决了吗?我也有同样的问题... - Massimiliano
我刚刚进行了XCode更新,因为新版本已经发布。 - ovanes
1个回答

2

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


这对我有用!brew install cpp-ethereum --with-evmjit - Eamorr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接