如何使用android交叉编译工具链编译静态链接应用程序?

时间:2012-01-10 15:34:07

标签: android bash gcc android-ndk native

我正在尝试为arm设备编译fbgrab fbgrab website

我设法使用此命令构建它

arm-linux-androideabi-gcc --sysroot=$NDK_ROOT/platforms/android-8/arch-arm/ -lz  -lm  -I../zlib -I../lpng  -W -Wall   -o fbgrab fbgrab.c ../zlib/libz.a ../lpng/libpng.a

但它是动态链接的,我现在不知道如何在设备上安装共享库

localhost:fbgrab-1.0 anatoly$ file fbgrab
fbgrab: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

所以我需要使用静态链接库来构建它 当我尝试使用-static选项编译失败并显示此消息ld: cannot find -lz,尽管共享库位于指向的目录中

这里有什么问题?如何构建静态链接二进制文件?或者如何在设备上安装共享库?

1 个答案:

答案 0 :(得分:0)

您可以轻松安装共享库,方法是在项目中包含源代码并使用NDK工具构建它们,或者包含预构建的共享库。也可以使用NDK进行静态链接。在NDK目录中查看这些文档:

/android-ndk-r7/docs/PREBUILTS.html
/android-ndk-r7/docs/ANDROID-MK.html

希望有所帮助!