为 Android 编译本机 C 二进制文件 - 例如:dosfsck

发布于 2024-12-06 09:32:28 字数 539 浏览 1 评论 0原文

我正在尝试使用 Linux 和 Android NDK 和 SDK 编译适用于 Android 的二进制 dosfsck 和 mkdosfs。我已经正确设置了 NDK 和 SDK,NDK gcc 的路径在我的路径中。我还为我的设备 (HTC Desire) 下载了正确的 SDK。

我首先尝试使用简单的 make 来编译该文件:

制作 CROSS_COMPILE=/home/droidzone/android/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc

我需要能够运行我的设备中的二进制文件。事实上,该应用程序可以在 Ubuntu 上编译并运行,但不能在我的设备上运行。我从 sh 收到错误消息:无法运行二进制文件

有人可以解释一下我如何链接库、我应该从哪里获取它们(在 SDK 内)以及对 Makefile 进行哪些更改(如果有)以及编译此库的最终语法适合Android

I am trying to compile the binary dosfsck and mkdosfs for Android, using Linux and Android NDK and SDK. I've setup NDK and SDK properly, the path to the NDK gcc is in my path. I've also downloaded the correct SDK for my device (HTC Desire).

I first tried compiling the file with a simple make:

make
CROSS_COMPILE=/home/droidzone/android/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc

I need to be able to run the binary from my device. As it is, the app compiles and runs on Ubuntu, but not my device. I get the error message from sh: Cannot run binary

Could someone please explain how I can link libraries, where I should get them from (within the SDK) and what changes if any to make to the Makefile, and the final syntax to compile this properly for Android

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白日梦 2024-12-13 09:32:28

我发现使用 agcc script 脚本最容易做到这一点,您可以通过导出 CC=agcc 来使用该脚本。正如您所尝试的那样,许多项目无法正确支持 CROSS_COMPILE 。 agcc 脚本面向使用 Android 构建树文件,因此我修改了它以使用NDK 工具。有了这个,您应该能够使用 make CC=agccCC=agcc ./configure 构建大多数东西

I found this was easiest to do using the agcc script script which you can use by exporting CC=agcc. Lots of projects will not properly support CROSS_COMPILE as you have tried. The agcc script is oriented around using the Android build tree files so I modified it to use the NDK tools. With this you should be able to build most things using make CC=agcc or CC=agcc ./configure

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文