के लिए सी प्रोग्राम को संकलित करने के लिए मैं एक सरल हैलोवर्ल्ड एप्लिकेशन बनाने और इसे जेनमोशन पर चलाने की कोशिश कर रहा हूं। मेरी बिल्डिंग सिस्टम उबंटू 14.04 64 बिट है। मेरे पास एंड्रॉइड एसडीके (आर 22.6.2) और एनडीके (आर 9 डी) स्थापित है।जेनमोशन (एंड्रॉइड x86)
प्रथम प्रयास: पहले से बनाए गए NDK एआरएम toolchain
TOOLCHAIN = $NDK/toolchains/arm-linux-androideabi-4.8
$TOOLCHAIN/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=$PLATFORM hello.c -o hello
adb push hello /sdcard/
./hello
मैं एक त्रुटि
/system/bin/sh: ./Hello: not executable: magic 7F45
मिल कुछ शोध करने के बाद का उपयोग कर निर्माण, मैं जल्दी से एहसास Genymotion मेहराब के बजाय एआरएम है
दूसरा प्रयास: x86 स्टैंडअलोन टूल का उपयोग करके बनाएं चेन
मेक 86 standlone toolchain पहले
cd $NDK/build/tools ./make-standalone-toolchain.sh --arch=x86 --platform=android-19 --install-dir=/tmp/android-toolchain --ndk-dir=../../. --system=linux-x86_64
toolchain का उपयोग कर नमस्ते बिल्ड
cd tmp/android-toolchain/bin ./i686-linux-android-gcc -o Hello -c hello.c
भागो हैलो Genymotion
परadb push hello /data/local/tmp adb shell cd /data/local/tmp ./hello /system/bin/sh: ./Hello: not executable: magic 7F45
जीनमोशन मशीन पर uname -a
रैन। निष्पादन
पर file Hello
Ran तो यह एक मैच होना चाहिए।
अभी भी वही त्रुटि मिल रही है। अगर कोई कुछ प्रकाश डाल सकता है तो वास्तव में इसकी सराहना करेंगे।
संपादित करें 1:/sdcard/के बजाय निष्पादन योग्य/डेटा/स्थानीय/tmp में निष्पादन योग्य प्रयास करने का प्रयास किया। अभी भी एक ही त्रुटि देता है।
संपादित करें 2: genymotion प्रणाली और file
निष्पादन पर पर uname
Ran अगर वे से मेल देखने के लिए।
मेरा मानना है कि एक भ्रम है: आप 'हैलो' को'/sdcard' पर दबाते हैं, लेकिन '/' (रूट निर्देशिका) से 'हैलो' चलाते हैं। किसी भी दर पर, एंड्रॉइड सुरक्षा कारणों से/sdcard और अन्य बाहरी स्टोरेज को गैर-निष्पादन योग्य के रूप में माउंट करता है। इसलिए, यदि आप अपने निष्पादन योग्य को धक्का और चलाने के लिए चाहते हैं, तो कुछ अन्य निर्देशिका का उपयोग करें। '/ डेटा/स्थानीय/टीएमपी आमतौर पर एक अच्छी पसंद है। –
मैंने अभी निष्पादन योग्य/डेटा/स्थानीय/tmp में चलाने की कोशिश की। अभी भी मुझे एक ही त्रुटि देता है – HBZ
क्या आपने 'chmod 700/डेटा/स्थानीय/tmp/हैलो 'चलाया था? –