2011-05-02 4 views
21

विशेष रूप से मैं चेनडीडी की सु बाइनरी संकलित करने की कोशिश कर रहा हूं। मैंने ndk-build का उपयोग करने की कोशिश की लेकिन ऐसा लगता है कि मुझे NDK_PROJECT_PATH सेट करने की आवश्यकता है, लेकिन इसे सेट करने के लिए क्या करना चाहिए दस्तावेज़ में वर्णित नहीं है।Android.mk का उपयोग करके मैं सरल देशी कोड कैसे संकलित करूं?

+0

आम तौर पर आप अपने प्रोजेक्ट के भीतर से ndk-build चलाते हैं - यदि आप ऐसा करते हैं तो यह काम करता है? –

+0

मैंने एनएनके-बिल्ड चलाया और एनडीके_PROJECT_PATH – user492922

+0

के बारे में शिकायत की है कि आप किस एनडीके का उपयोग कर रहे हैं? –

उत्तर

4

आप इस तरह अपने प्रोजेक्ट फ़ोल्डर की स्थापना की जरूरत है:

project_root

| _ _ JNI/(Android.mk और अपने C/C++ कोड शामिल)

| _ _ other_directory

JNI निर्देशिका का नाम नहीं बदल सकते। और project_root निर्देशिका में ndk-build चलाएं।

+0

क्या आप इस पर कुछ स्वरूपण जोड़ना चाहते थे? आपकी फ़ोल्डर संरचना बहुत स्पष्ट नहीं है। – Dutts

+0

मैं अपना उत्तर अपडेट करता हूं, क्या यह पर्याप्त स्पष्ट है? – onlyxool

+0

हां, आपके उत्तर के लिए बहुत बेहतर – Dutts

5

सबसे पहले, सुनिश्चित करें कि आप NDK बनाती हैं:

http://developer.android.com/tools/sdk/ndk/index.html

यहाँ अपने फोन के लिए एक सी बाइनरी संकलित करने के लिए सबसे आसान तरीका है:

http://developer.android.com/tools/sdk/ndk/index.html

http://www.kandroid.org/ndk/docs/STANDALONE-TOOLCHAIN.html

आमतौर पर $ एनडीके (अलग हो सकता है) =

लिनक्स:

/घर/<user>/android-NDK

मैक ओएस एक्स:

/उपयोगकर्ताओं/<user>/android-NDK

दोनों: $ HOME/android-ndk

टर्मिनल में:

# create tool-chain - one line 
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-3 --install-dir=/tmp/my-android-toolchain 

# add to terminal PATH variable 
export PATH=/tmp/my-android-toolchain/bin:$PATH 

# make alias CC be the new gcc binary 
export CC=arm-linux-androideabi-gcc 

# compile your C code(I tried hello world) 
$CC -o foo.o -c foo.c 

# push binary to phone 
adb push foo.o /data/local/tmp 

# execute binary 
adb /data/local/tmp/foo.o 

अगर मैं मदद कर सकता हूं तो कृपया मुझे बताएं!

सम्मान,

+0

'$ एनडीके/बिल्ड/टूल्स/मेक -स्टैंडोन-toolchain.sh --platform = android-3 --install-dir =/tmp/my-android-toolchain' एक त्रुटि फेंक सकता है 'से आर्क को कॉन्फ़िगर करने में असमर्थ टूलचेन', – Glowin

+0

'एनडीके/बिल्ड/टूल्स/मेक -स्टैंडोनोन-toolchain.sh --platform = android-3 --install-dir =/tmp/my-android-toolchain' त्रुटि फेंक सकता है' ऑटो में असमर्थ टूलचैन से कॉन्फ़िगर आर्क, इस जवाब में एन्कोडिंग http://stackoverflow.com/questions/29444079/unable-to-auto-config-arch-from-toolchain, '--toolchain = arm-linux-androideabi- 4.8' https://gist.github.com/Tydus/11109634 – Glowin

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