2013-06-28 4 views
5

У меня есть последняя версия XCode, установленная на моей Mac OS X 10.8 с LLVM 3.2. Теперь я хотел бы перейти на llvm/clang 3.3.Mac OS X 10.8 и llvm/clang 3.3 через homebrew

В моем текущем проекте я использую CMake с clang 3.2 и libC++, которые работают нормально.

Теперь я думал, что смогу переключиться с помощью доморощенного. Так что я сделал, выполнив следующую команду:

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

Этот встроенный новый лязг и обновлять его в/USR/местные/бен.

Запуск 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 было найдено. Что может вызвать эту проблему?

Примечание: Я думаю, что моя проблема заключается в том, что квас строит LLVM/лязг с libstdC++ вместо LIBC++. Есть ли способ заставить его использовать libC++? Или есть ли другой простой способ обновить clang на OS X и использовать libC++?

+0

Вы поняли это в конце концов? У меня такая же проблема ... –

+0

Я только что обновил XCode после выхода новой версии. – ovanes

ответ

2

Добавить -stdlib=libc++ в параметры сборки, чтобы настроить clang на использование libC++.

+0

Это сработало для меня! 'brew install cpp-ethereum --with-evmjit' – Eamorr