سؤال

لا أعرف كيفية بناء دفعة مع مجمعات C ++ 0x. ما هو الخيار الذي يجب إعطاؤه إلى BJAM؟ هل يجب تعديل ملف user.config؟ هل يمكن لأحد أن يساعدني؟

أفضل ، فيسينتي

هل كانت مفيدة؟

المحلول

أنا وجدت الإجابة. كنت أنتظر ميزات شيء مثل "STD" وأسميها على النحو التالي:

bjam std=0x

ولكن حاليًا نحتاج إلى استخدام متغيرات المستوى المنخفض CXXFLAGs وإضافة أعلام التحويل البرمجي المحددة. على سبيل المثال بالنسبة لـ GCC يمكننا القيام به

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

سيحتاج المجمعون الآخرون إلى إعداد مختلف.

في انتظار ميزة Boost.build جديدة ، يمكنك أيضًا تحديد مجموعة الأدوات الخاصة بك على النحو التالي: إضافة ملف 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

نصائح أخرى

استخدم شيئًا كهذا:

./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=gnu++11 لتمديدات GNU (فقط لـ GCC)

إذا لم يتم إنشاء Boost :: MPI (راجع إخراج الأمر أعلاه) -> تحرير user -config.jam

إذا كنت ترغب في بناء مكونات معينة فقط: إضافة:

--with-libraries=system,thread,serialization

فمثلا

هنا نص مكيف من بلدي نطاق من Travis (ضبط 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.

لتجميع باستخدام Clang ، استخدم cxxflags و linkflags:

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

تمرير أ -v إلى cxxflags مفيد أيضا عند تصحيح الأخطاء.

صادفت مقالًا لتجميع Boost باستخدام Clang: http://blog.llvm.org/2010/05/clang-builds-boost.html. قد يكون من الممكن تكييف التغييرات المقترحة هناك لتجميع Boost باستخدام boost.jam إلى برنامج التحويل البرمجي C ++ 0x المفضل لديك.

أنت أيضا تستطيع تغيير أعلام التجميع لملف واحد مثله:

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top