2013-06-28 59 views
5

我的Mac OS X 10.8上安裝了最新版本的XCode,並帶有LLVM 3.2。現在我想切換到llvm/clang 3.3。Mac OS X 10.8和llvm/clang 3.3通過自制軟件

在我目前的項目中,我使用了CMake和clang 3.2和libC++,它們工作正常。

現在我想我可以切換使用自制軟件。所以我做的是發出以下命令:

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

這建立了新的叮鐺聲,並在/ 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++嗎?或者有沒有其他簡單的方法來升級OSX的鏗鏘聲和使用libC++?

+0

你最終發現了嗎?我有同樣的問題... –

+0

我剛剛做了一個XCode更新,在一個新版本出來後。 – ovanes

回答

2

-stdlib=libc++添加到構建參數以將clang配置爲使用libC++。

+0

這對我有效! 'brew install cpp-ethereum --with-evmjit' – Eamorr