2012-11-15 10 views
12

Nie mogę skompilować boost z clang 3.1 na Mac OS x 10.8.2.Skompiluj boost C++ 11 clang mac nie można znaleźć cstddef

To co zrobiłem:

./bootstrap.sh --with-toolset=clang 
./b2 toolset=clang cxxflags="-std=c++11 -stdlib=libc++" linkflags="-stdlib=libc++" 

Próbowałem też bez chrono, test, fal i sygnałów. Próbowałem obsługi config.jam z

using clang-darwin 

Jest to błąd Mam prawie każdego pliku:

/boost/config/select_stdlib_config.hpp:18:12: fatal error: 'cstddef' file not found 

To niby podobny do How to compile/link Boost with clang++/libc++?

Dziękuję: -)

Aktualizacja: Mam najnowszy Xcode 4.5.2 z zainstalowanymi narzędziami wiersza poleceń.

Oto część wyjścia konsoli:

Kikohs:trunk kikohs$ ./b2 toolset=clang cxxflags="-std=c++11 -stdlib=libc++" linkflags="-stdlib=libc++" 
Performing configuration checks 

- 32-bit     : no 
- 64-bit     : yes 
- x86      : yes 
- has_icu builds   : no 
warning: Graph library does not contain MPI-based parallel components. 
note: to enable them, add "using mpi ;" to your user-config.jam 
    - gcc visibility   : yes 
    - long double support  : no 
warning: skipping optional Message Passing Interface (MPI) library. 
note: to enable MPI support, add "using mpi ;" to user-config.jam. 
note: to suppress this message, pass "--without-mpi" to bjam. 
note: otherwise, you can safely ignore this message. 

Budowanie Boost C++ bibliotek.

- iconv (libc)    : no 
- iconv (separate)   : yes 
- icu      : no 
- icu (lib64)    : no 

Element konfiguracji:

- atomic     : building 
- chrono     : building 
- context     : building 
- date_time    : building 
- exception    : building 
- filesystem    : building 
- graph     : building 
- graph_parallel   : building 
- iostreams    : building 
- locale     : building 
- math      : building 
- mpi      : building 
- program_options   : building 
- python     : building 
- random     : building 
- regex     : building 
- serialization   : building 
- signals     : building 
- system     : building 
- test      : building 
- thread     : building 
- timer     : building 
- wave      : building 

...patience... 
...patience... 
...patience... 
...patience... 
...found 8672 targets... 
...updating 1127 targets... 
common.mkdir bin.v2/libs/atomic 
common.mkdir bin.v2/libs/atomic/build 
common.mkdir bin.v2/libs/atomic/build/clang-darwin-4.2.1 
common.mkdir bin.v2/libs/atomic/build/clang-darwin-4.2.1/debug 
clang-darwin.compile.c++ bin.v2/libs/atomic/build/clang-darwin-4.2.1/debug/lockpool.o 
In file included from libs/atomic/src/lockpool.cpp:1: 
./boost/atomic.hpp:10:10: fatal error: 'cstddef' file not found 
#include <cstddef> 
    ^
1 error generated. 

"clang++" -x c++ -O0 -g -std=c++11 -stdlib=libc++ -O0 -fno-inline -Wall -g -DBOOST_ALL_NO_LIB=1 -DBOOST_ATOMIC_DYN_LINK=1 -DBOOST_ATOMIC_SOURCE -I"." -c -o "bin.v2/libs/atomic/build/clang-darwin-4.2.1/debug/lockpool.o" "libs/atomic/src/lockpool.cpp" 
+0

mam poprawione Twój tytuł, zmieniając 'cstddef.h' na' cstddef' –

Odpowiedz

4

Ostatecznie naprawiłem mój problem po wielu godzinach.

Homebrew działał na mojej ścieżce iz jakiegoś powodu mój klang nie mógł znaleźć nagłówków libC++.

Występuje błąd o wzroście 1,52.

Zobacz Boost numeric limits bug

musiałem edytować plik:

boost/config/stdlib/libcpp.hpp 

i załatać go:

#if _LIBCPP_VERSION < 1002 
# define BOOST_NO_CXX11_NUMERIC_LIMITS 
#endif 

Teraz zwiększyć buduje poprawnie ...

+0

Homebrew ma teraz opcję budowania boost z C++ 11, boost jest łatany przez homebrew :-). – Kikohs

+0

Po prostu notatka, nie sądzę, że istnieje sposób, aby to zrobić z Travis-Ci, jeśli budujesz coś obok swojego projektu. Jeśli ktokolwiek znajdzie sposób, daj mi znać, ale nie sądzę, że jest jakiś sposób, z powodu przestarzałego klapsa Travis-ci. –

5

Wygląda na to, że zapomniałeś zainstalować nagłówki libC++ wraz z brzękiem.

Jeśli nie chcesz zadzierać z instalowaniem nagłówków, wypróbuj wersję clang rozprowadzaną przez Apple jako część pakietu Command Line Tools; to było więcej testów i zostało już poprawnie skonfigurowane.

+0

Mam zainstalowane lates t Xcode za pomocą narzędzi programistycznych. – Kikohs

Powiązane problemy