C++ 0x समर्थन के साथ बूस्ट कैसे बनाएं?




boost c++11 (4)

इसके अलावा, आप इस तरह की एक फ़ाइल के लिए संकलन झंडे बदल सकते हैं :

exe test : test.cpp : <cxxflags>-std=gnu++0x ;

मुझे नहीं पता कि सी ++ 0x कंपाइलर्स के साथ बूस्ट कैसे बनाया जाए। Bjam को कौन सा विकल्प दिया जाना चाहिए? क्या user.config फ़ाइल को संशोधित किया जाना चाहिए? क्या कोई मेरी मदद कर सकता है?

बेस्ट, Vicente


मुझे जवाब मिल गया है। मैं 'std' जैसी सुविधाओं की प्रतीक्षा कर रहा था और इसे निम्नानुसार कॉल करता हूं:

bjam std=0x

लेकिन वर्तमान में हमें निम्न स्तर चर cxxflags का उपयोग करने और विशिष्ट कंपाइलर झंडे जोड़ने की जरूरत है। उदाहरण के लिए जीसीसी के लिए हम कर सकते हैं

bjam toolset=gcc cxxflags=-std=gnu++0x

अन्य कंपाइलरों को एक अलग सेटिंग की आवश्यकता होगी।

एक नई बूस्ट की प्रतीक्षा कर रहा है। बिल्ड सुविधा, आप अपने स्वयं के टूलसेट को निम्नानुसार परिभाषित भी कर सकते हैं: user.config या site.config फ़ाइल जोड़ें

using gcc
   : std0x
   : "/usr/bin/g++" # your path to the C++0x compiler
   : <cxxflags>-std=gnu++0x
   ;

और अब के रूप में कॉल करें

bjam toolset=gcc-std0x

cxxflags उपयोग करके संकलित करने के लिए, cxxflags और linkflags उपयोग करें:

./b2 \
    ...
    cxxflags="-std=c++0x -stdlib=libc++" \
    linkflags="-stdlib=libc++" \
    ...

डीबगिंग करते समय एक -v को cxxflags करना भी सहायक होता है।


इस तरह कुछ प्रयोग करें:

./bootstrap.sh --with-toolset=gcc --prefix=/usr/local

./b2 -j12 toolset=gcc variant=release link=shared threading=multi address-model=64 cxxflags=-std=c++11 install 

-j12 समांतर (12 धागे) के लिए बेहतर अनुकूलता के लिए -std=c++11 का उपयोग -std=c++11 और gnu एक्सटेंशन के लिए -std=gnu++11 (केवल gcc के लिए)

अगर boost :: mpi नहीं बनाया गया है (उपरोक्त आदेश के आउटपुट को देखें) -> user-config.jam को संपादित करें

यदि आप केवल कुछ घटकों को बनाना चाहते हैं: जोड़ें:

--with-libraries=system,thread,serialization

उदाहरण के लिए

ट्रैविस से मेरे framework से एक अनुकूलित स्क्रिप्ट यहां है ( ROOT_PATH समायोजित ROOT_PATH ):

BOOST_DOWNLOAD_URL="http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.bz2/download"
BOOST_BUILD=${ROOT_PATH}/boostBuild
mkdir -p ${BOOST_BUILD}
wget --no-verbose --output-document="${ROOT_PATH}/boost.tar.bz2" "$BOOST_DOWNLOAD_URL"
cd ${BOOST_BUILD}
tar jxf "${ROOT_PATH}/boost.tar.bz2" --strip-components=1 -C "${BOOST_BUILD}"
./bootstrap.sh --with-toolset=gcc --with-libraries=system,thread,serialization,filesystem,chrono,atomic,date_time
sudo ./b2 -j12 toolset=gcc threading=multi link=shared release install

जो /usr/local में स्थापित करता है।





bjam