我需要从最新的libpcap构建一个静态库,并在C源代码中“包含”它,以便为ARM-v7-a架构(Nexus One)进行交叉编译。
我已经好几天了,希望有人可以给我一个提示。
我不能既不使用NDK也不使用Java包装函数。它需要像:
$ -o prog prog.c [-options] 然后我将能够通过adb推送可执行文件。
我尝试过通过apt-get安装CodeSourcery和arm-linux-gnueabi(我在Kubuntu Linux上),没有任何工作正常。
我达到的最多目标是通过以下简单的helloworld文件:
arm-linux-gnueabi-gcc -static -o prog prog.c
在我的智能手机下执行。
你有什么线索我可以获得更复杂的程序,包括libpcap吗?我认为它应该处理libpcap目录中的.a或.so文件,但我真的不明白...... 提前致谢
编辑 - 已解决 : 正如auselen所说,我尝试使用NDK独立工具链,但我已经成功了。
这就是我所做的,如果有人会遇到同样的问题:
1)下载Android SDK和NDK(后者目前是r8d版本)
2)进入NDK文件夹并输入
cd build / tools
make-standalone-toolchain.sh --platform = android-3 --install-dir = $ HOME / new_toolchain --ndk-dir = YOUR_NDK_PATH
cd $ HOME / new_toolchain
(我已将helloworld.c文件放在此文件夹中,但当然您可以将PATH添加到.bashrc文件中以提高效率)
bin / arm-linux-androideabi-gcc helloworld.c -o helloworld
3)通过adb将其推入您的设备。
现在一切正常工作:)再次感谢
答案 0 :(得分:2)
由于Android使用不同的运行时(仿生),因此最好使用NDK,它具有相应链接应用程序的必要组件。
NDK允许您将其作为standalone toolchain运行,因此您可以通过其gcc
功能直接启动sysroot
。
一个重要提示是在调用~
时指定的路径中不使用gcc
,它不是那么友好。