2013-06-28 23 views
5

Ho l'ultima versione di XCode installata sul mio Mac OS X 10.8 con LLVM 3.2. Ora vorrei passare a llvm/clang 3.3.Mac OS X 10.8 e llvm/clang 3.3 via homebrew

Nel mio progetto corrente uso CMake con clang 3.2 e libC++ che funzionano bene.

Ora ho pensato di poter passare all'homebrew. Quindi quello che ho fatto è stato il seguente comando:

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

Questa nuova costruzione clang e aggiornato in/usr/local/bin.

Esecuzione CMake con i seguenti parametri:

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

avuto successo e la mia uscita CMake assomiglia:


-- 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 

Ma se comincio a costruire il mio progetto ricevo un errore:


[ 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. 

Quindi ovviamente non si trova l'intestazione standard, che è stata trovata con clang 3.2. Cosa può causare questo problema?

Nota: Penso che il mio problema è che brew costruisce LLVM/clang con libstdC++ invece di libC++. C'è un modo per forzarlo a usare libC++? O c'è qualche altro modo semplice per aggiornare clang su OS X e usare libC++?

+0

Hai finalmente capito? Ho lo stesso problema ... –

+0

Ho appena fatto un aggiornamento XCode, dopo che è uscita una nuova versione. – ovanes

risposta

2

Aggiungere -stdlib=libc++ ai parametri di compilazione per configurare clang per utilizzare libC++.

+0

Questo ha funzionato per me! 'brew install cpp-ethereum --with-evmjit' – Eamorr