2011-02-03 9 views
14

क्या किसी ने पोर्ट्रॉइड किया है और एंड्रॉइड पर बूस्ट का इस्तेमाल किया है?पोर्ट बूस्ट एंड्रॉइड

मुझे टूल मिला है जो एंड्रॉइड() के लिए बढ़ावा देता है, बिल्ड सफल है, और मुझे स्थैतिक बढ़ावा libs मिल गया है। लेकिन जब मैं सरल Android एप्लिकेशन में इसका उपयोग करना tring हूँ:

#include <jni.h> 
#include "boost/thread.hpp" 

void f() 
{ 
}; 

मैं संकलन त्रुटियों की एक बहुत कुछ मिल गया है: redefinitions, अघोषित आदि यह चिंताओं NDK एसटीडी हेडर लगता है। मेरे Android.mk लगता है:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

TARGET_PLATFORM := android-8 

LOCAL_MODULE := Boost 

LOCAL_CFLAGS := -DMYSTIC -I$(LOCAL_PATH)/boost/include/ 
LOCAL_LDLIBS := -L$(LOCAL_PATH)/external/boost/lib/ 

LOCAL_CPPFLAGS := -fexceptions 
LOCAL_CPPFLAGS += -frtti 
LOCAL_CPPFLAGS += -DBOOST_THREAD_LINUX 
LOCAL_CPPFLAGS += -DBOOST_HAS_PTHREADS 
LOCAL_CPPFLAGS += -D__arm__ 
LOCAL_CPPFLAGS += -D_REENTRANT 
LOCAL_CPPFLAGS += -D_GLIBCXX__PTHREADS 
LOCAL_CPPFLAGS += -DBOOST_HAS_GETTIMEOFDAY 

LOCAL_SRC_FILES := main.cpp 

include $(BUILD_SHARED_LIBRARY) 

इसके अलावा, मैं Crystax_NDK_r4 और Android_NDK_r5b साथ निर्माण करने की कोशिश, लेकिन यह समस्या का समाधान नहीं किया गया है।

कोई भी विचार?

+0

आपको यहां अपनी लिंकर त्रुटियों को भी पेस्ट करना चाहिए। शब्दशः। बहुत कम संवाददाताओं के पास आपके सेटअप को दोहराने का प्रयास करने का समय होता है, लेकिन अच्छे त्रुटि संदेश सुराग पाठकों को क्या हो रहा है में मदद करेंगे। –

उत्तर

6

मैंने समस्या हल कर दी है। मैंने एनडीके को गलत पथ निर्दिष्ट किया। स्क्रिप्ट क्रिस्टाक्स एनडीके भी पैच करता है। तो अब यह काम करता है!

1

आप स्क्रिप्ट को डाउनलोड करने और कुछ लोकप्रिय C/C++ खुला स्रोत है और इस स्थान पर बढ़ावा सहित एंड्रॉयड के लिए पुस्तकालयों ios का निर्माण करेगा का एक संग्रह डाउनलोड कर सकते हैं।

https://github.com/mevansam/cmoss

4

मैं सिर्फ एंड्रॉयड NDK, के तहत बढ़ावा निर्माण करने के लिए जो बढ़ावा पैचिंग की जरूरत नहीं है एक आसान रास्ता मिल गया।

मैं Android.mk का उपयोग नहीं करते बढ़ावा निर्माण करने के लिए, बजाय, मैं स्टैंडअलोन-toolchain का उपयोग निर्माण करने के लिए, बस CodeSourcery के toolchain लिंक।

  1. पहले NDK toolchain तैयार:

    एक स्टैंडअलोन toolchain के रूप में NDK toolchain स्थापित करें। $ देखें NDK/docs/स्टैंडअलोन-TOOLCHAIN.html

    अपने पथ

  2. बिल्ड boost.Build उपकरण को पार toolchain की बिन पथ जोड़ें, बूस्ट PRJ में:

    ./bootstrap.sh

  3. गूंज "का उपयोग जीसीसी: एंड्रॉयड: हाथ-linux-androideabi-जी ++," > $ घर/उपयोगकर्ता के config.jam

  4. उदाहरण बिल्ड

    ./b2 उपसर्ग = $ घर/mybuild --with-धागा --with-प्रणाली टूलसेट = जीसीसी-एंड्रॉयड सूत्रण = बहु लिंक = स्थैतिक इंस्टॉल

मुझे आशा है कि ये आपकी मदद कर सकते हैं।

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