बढ़ावा दिशाओं के बाद, मैं Ubuntu 12.04 (पर NDKr10e साथ बढ़ावा 1.60 निर्माण करने में सक्षम था, हालांकि मुझे लगता है बहुत कम मेजबान सिस्टम पर निर्भर करता है)। यहां मेरे नोट्स हैं:
बूस्ट स्रोत टैरबॉल प्राप्त करें और अनपैक करें (मैंने 1.60 का उपयोग किया): boost_1_60_0.tar।BZ2
[email protected]:/scratch/moskewcz/android/src$ ll
total 74M
drwx------ 10 moskewcz moskewcz 4.0K Mar 9 14:14 boost_1_60_0
-rw-rw-r-- 1 moskewcz moskewcz 74M Jan 5 11:15 boost_1_60_0.tar.bz2
पालन को बढ़ावा देने में यूनिक्स पर "का निर्माण कस्टम बाइनरी" खंड
शुरू हो रही है स्थापित करने के लिए एक ताजा, खाली जड़ का उपयोग निर्देश b2 अर्थात/खरोंच/बढ़ावा देने-निर्माण जड़; उपसर्ग के रूप में usr का उपयोग करें; फिर से बढ़ावा निर्देशों का पालन: कुछ jamfile में
[email protected]:/scratch/moskewcz/android/src/boost_1_60_0/tools/build$ ./bootstrap.sh
[email protected]:/scratch/moskewcz/android/src/boost_1_60_0/tools/build$ ./b2 install --prefix=/scratch/moskewcz/android/boost-build-root/usr
डाल b2 पथ में (फिर से निर्देशों के अनुसार)
export PATH=/scratch/moskewcz/android/boost-build-root/usr/bin:$PATH
(मुझे कोई ~/उपयोगकर्ता के config.jam था, तो मैं एक बनाया है और इसका इस्तेमाल किया गया है, हो सकता है कि बनाने/संपादित करने के लिए जामफाइल का बेहतर विकल्प हो) कुछ जेम-कोड (?) को एक जीसीसी संस्करण (टूलसेट) को परिभाषित करने के लिए एक स्टैंडअलोन टूलचेन से g ++ को इंगित करने के लिए जोड़ें। ध्यान दें कि यह 'एक स्टैंडअलोन टूलचेन' दिशाओं के बाद सामान्य फैशन में एनडीके के साथ बनाई गई टूलचैन है। मैं नहीं एक ग्राम ++ NDK ही अंदर की ओर इशारा करते हूँ (कि या काम नहीं हो सकता है, मुझे पता नहीं):
import option ;
using gcc : arm_linux_android_4.9 : /scratch/android-stc/bin/aarch64-linux-android-g++ ;
option.set keep-going : false ;
ज्यादातर के रूप में दिशा-निर्देश के अनुसार, परियोजना जड़ को बढ़ावा देने और निर्माण करने के लिए जाना। --बिल्ड-डीआईआर वैकल्पिक हो सकता है? भी -j8 करने के लिए जोड़ा ||
[email protected]:/scratch/moskewcz/android/src/boost_1_60_0$ b2 -j8 --build-dir=bin.v2 toolset=gcc-arm_linux_android_4.9 stage
टिप्पणी का निर्माण है कि यह डिफ़ॉल्ट रूप से दोनों स्थिर और साझा libs का निर्माण करने की कोशिश करता है, लेकिन इमारत साझा libs librt.so नहीं होने android के कारण विफल हो जाता है - मेरी शोध के अनुसार, लोगों का दावा है कि एंड्रॉयड के तहत (कुछ ?) librt.so की कार्यक्षमता libc.so के अंदर है - इसलिए एंड्रॉइड के लिए साझा libs बनाने के लिए लिंकिंग चरणों से आसानी से निकालना ठीक हो सकता है। मैंने इसका प्रयास नहीं किया। देखें:
https://code.google.com/p/android/issues/detail?id=5730
Building Boost for Android with error "cannot find -lrt"
मैंने पाया एक प्रीबिल्ट बूस्ट लाइब्रेरी का उपयोग कर समाप्त हुआ। यह काम करता है लेकिन मैं आपकी सलाह के साथ संकलन करने की कोशिश करूंगा। धन्यवाद! https://github.com/emileb/Boost-for-Android-Prebuilt – BSod
क्या आप संचालन के बारे में थोड़ा और सटीक हो सकते हैं? उदाहरण के लिए मेरे पास प्रोजेक्ट-config.bjam फ़ाइल नहीं है। – Antonio