2012-11-15 18 views
12

नहीं मिल सकता है मैं मैक ओएस एक्स 10.8.2 पर बजना 3.1 के साथ बढ़ावा संकलन नहीं कर सकते।संकलित को बढ़ावा देने के सी ++ 11 बजना मैक cstddef

यह मैं क्या किया है:

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

मैं भी Chrono, परीक्षण, लहर और संकेत के बिना की कोशिश की।

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

यह तरह How to compile/link Boost with clang++/libc++?

धन्यवाद के लिए इसी तरह की है: मैं

using clang-darwin 

के साथ एक उपयोगकर्ता के config.jam की कोशिश की यह त्रुटि मैं लगभग हर फ़ाइल के लिए है -)

अद्यतन: मैं कमांड लाइन उपकरण स्थापित के साथ नवीनतम Xcode 4.5.2 की क्या ज़रूरत है।

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. 

बूस्ट सी ++ पुस्तकालय का निर्माण:

यहाँ सांत्वना उत्पादन का हिस्सा है।

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

घटक विन्यास:

- 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

मैं सही कर लेने पर आपका शीर्षक, 'cstddef.h' को' cstddef' में बदल रहा है –

उत्तर

4

अंत में मैंने कई घंटों के बाद अपनी समस्या तय की।

Homebrew मेरे पथ के साथ खिलवाड़ किया गया था और किसी कारण से मेरी बजना libC++ हेडर नहीं पा सके।

एक बग 1.52 बढ़ा है।

देखें Boost numeric limits bug

मैं फ़ाइल को संपादित करने के लिए किया था:

boost/config/stdlib/libcpp.hpp 

और यह पैच:

#if _LIBCPP_VERSION < 1002 
# define BOOST_NO_CXX11_NUMERIC_LIMITS 
#endif 

अब बढ़ावा देने के लिए ठीक से बनाने जा रहा है ...

+0

होमब्रू के पास अब सी ++ 11 के साथ बढ़ावा देने का विकल्प है, बूस्ट होमब्रू द्वारा पैच किया गया है :-)। – Kikohs

+0

बस एक नोट, मुझे नहीं लगता कि ट्रैविस-सीआई के साथ ऐसा करने का कोई तरीका है यदि आप अपनी परियोजना के साथ-साथ बढ़ावा दे रहे हैं। अगर किसी को रास्ता मिल जाए, तो मुझे बताएं, लेकिन मुझे नहीं लगता कि पुरानी ट्रैविस-सीआई के क्लैंग के कारण एक तरीका है। –

5

ऐसा लगता है कि आप बजना के साथ libC++ हेडर स्थापित करने के लिए भूल गया था।

आप हेडर स्थापित करने के साथ गड़बड़ नहीं करना चाहते हैं, तो कमांड लाइन उपकरण पैकेज के भाग के रूप में एप्पल द्वारा वितरित बजना के संस्करण की कोशिश; यह अधिक परीक्षण के माध्यम से किया गया है, और यह पहले से ही ठीक से स्थापित है।

+0

मैंने लेट्स इंस्टॉल किए हैं डेवलपर टूल्स के साथ टी एक्सकोड। – Kikohs

संबंधित मुद्दे