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