我讀過gcc文檔,它支持使用-mandroid和-mbionic開關構建android二進制文件。首先,我使用從svn構建的本地gcc進行了嘗試。結果:如何配置gcc爲android編譯?
[email protected]:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.7.0/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../source/configure --enable-threads --disable-nls
Thread model: posix
gcc version 4.7.0 20110611 (experimental) (GCC)
[email protected]:~$ g++ test.cpp -mandroid -o test.out
[email protected]:~$ file test.out
test.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
基本上它失敗了。接下來,我試圖用target = arm-linux-androideabi(不定義sysroot,...)編譯相同的gcc源代碼,並且它通過了配置,但是未能構建pthread.h未找到:
In file included from ../.././gcc/gthr-default.h:1:0,
from ../../../combined/libgcc/../gcc/gthr.h:160,
from ../../../combined/libgcc/../gcc/unwind-dw2.c:37:
../../../combined/libgcc/../gcc/gthr-posix.h:41:21: fatal error: pthread.h: No such file or directory
compilation terminated.
那麼,有沒有人有關於如何使用gcc構建android二進制文件(我不想使用代碼源文件或android-ndk)的說明?
編輯: 我的配置選項
configure --target=arm-linux-android --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-libssp --disable-libgomp --disable-nls --enable-languages=c,c++,java
我可能找到了一些可以幫助你的東西。 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0483c/CIHDHBDG.html – Whitequill 2011-07-03 03:35:56
現在很高興知道:)我將嘗試構建Linux(x64)以windows(x86_64-w64-mingw32),並將回報= ... – dancsi 2011-07-03 10:33:29