首先,我只知道关于makefile的基础知识,而且我是Android NDK的新手。
我有x64 Linux Mint 17.1和Android NDK r8e,我正在尝试构建NetHack for Android。
如README中所述,基本思路是使用本地Android NDK路径修改makefile:
NDK = /path/to/android-ndk-r8d
SYSROOT=$(NDK)/platforms/android-9/arch-arm
CC = $(NDK)/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=$(SYSROOT)
但我一直收到这个错误:
cc -m32 -o makedefs makedefs.o ./monst.o ./objects.o / usr / bin / ld:在搜索-lgcc时跳过不兼容的/usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a
显然正在使用 / usr / bin / ld 而不是 arm-linux-androideabi-ld ,它不会找到 libgcc.a < / strong>在Android NDK文件夹中。 我错过了一些环境变量或参数吗?
感谢。
这是完整的输出:
touch ../src/config.h-t
/opt/android/ndk/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/opt/android/ndk/android-ndk-r8e/platforms/android-9/arch-arm -DANDROID -Wno-format -fsigned-char -I../include -c monst.c
/opt/android/ndk/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/opt/android/ndk/android-ndk-r8e/platforms/android-9/arch-arm -DANDROID -Wno-format -fsigned-char -I../include -c objects.c
make[2]: Entering directory `/home/rzhilich/Projects/NetHack-Android/util'
cc -m32 -Wno-format -I../include -c -o makedefs.o makedefs.c
makedefs.c: In function ‘do_rumors’:
makedefs.c:361:2: warning: format not a string literal and no format arguments [-Wformat-security]
Fprintf(ofp,Dont_Edit_Data);
^
makedefs.c: In function ‘do_date’:
makedefs.c:560:2: warning: format not a string literal and no format arguments [-Wformat-security]
Fprintf(ofp,Dont_Edit_Code);
^
makedefs.c: In function ‘do_dungeon’:
makedefs.c:1232:2: warning: format not a string literal and no format arguments [-Wformat-security]
Fprintf(ofp,Dont_Edit_Data);
^
makedefs.c: In function ‘do_monstr’:
makedefs.c:1354:5: warning: format not a string literal and no format arguments [-Wformat-security]
Fprintf(ofp,Dont_Edit_Code);
^
makedefs.c: In function ‘do_permonst’:
makedefs.c:1395:2: warning: format not a string literal and no format arguments [-Wformat-security]
Fprintf(ofp,Dont_Edit_Code);
^
makedefs.c: In function ‘do_objs’:
makedefs.c:1711:2: warning: format not a string literal and no format arguments [-Wformat-security]
Fprintf(ofp,Dont_Edit_Code);
^
makedefs.c: In function ‘do_vision’:
makedefs.c:1866:5: warning: format not a string literal and no format arguments [-Wformat-security]
Fprintf(ofp,Dont_Edit_Code);
^
makedefs.c:1891:5: warning: format not a string literal and no format arguments [-Wformat-security]
Fprintf(ofp,Dont_Edit_Code);
^
cc -m32 -Wno-format -I../include -c ../src/monst.c -o monst.o
cc -m32 -Wno-format -I../include -c ../src/objects.c -o objects.o
cc -m32 -o makedefs makedefs.o ./monst.o ./objects.o
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: error: ld returned 1 exit status
make[2]: *** [makedefs] Error 1
make[2]: Leaving directory `/home/rzhilich/Projects/NetHack-Android/util'
make[1]: *** [../util/makedefs] Error 2
make[1]: Leaving directory `/home/rzhilich/Projects/NetHack-Android/src'
make: *** [nethack] Error 2
显然安装说明不完整。出于某种原因, util 文件夹不是使用Android NDK gcc构建的,而是使用系统默认 cc 。安装以下软件包后:
我使用update-alternatives
将系统默认gcc版本设置为4.6。它解决了我的问题。
答案 0 :(得分:0)
了解iw
的方式
http://z4ziggy.wordpress.com/category/aircrack/
和tcpdump
已构建完成
https://github.com/chatch/tcpdump-android.git
重要的是
echo "| CREATING TOOLCHAIN |"