【问题标题】:Build Rsync for Android为 Android 构建 Rsync
【发布时间】:2011-12-29 04:12:22
【问题描述】:

我已经从http://rsync.samba.org/下载了rsync 有谁知道如何编译要部署在 Android 设备中的源代码?

【问题讨论】:

    标签: android build rsync


    【解决方案1】:

    假设您静态链接,您可以在没有 NDK 的情况下进行编译。这适用于 Ubuntu 13.04 Raring Ringtail。

    安装交叉编译器:

    sudo apt-get install gcc-arm-linux-gnueabi
    

    下载rsync:

    wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz
    tar -zxv -f rsync-3.0.9.tar.gz
    cd rsync-3.0.9
    

    用交叉编译器编译,使用静态链接:

    ./configure --host=arm-linux-gnueabi CFLAGS="-static"
    make
    

    您会收到一些类似于Using X in statically linked applications requires at runtime the shared libraries from the glibc version used for linking 的警告。但到目前为止,rsync 对我有用。

    最后,安装到您的手机(假设您使用的是 SSHDroid):

    scp -P 2222 rsync root@$PHONE_IP:/data/data/berserker.android.apps.sshdroid/dropbear
    

    【讨论】:

    • 请注意,您必须将二进制文件移动到 /data(例如 /data/local/tmp)并使其可执行(chmod 0777 rsync)才能运行。
    • 什么是二进制文件。你能帮我吗stackoverflow.com/questions/22529567/…
    【解决方案2】:

    您需要找到 here 的 Android NDK 网页上包含了如何为 Android 编译 C 代码的示例和下载。

    来自NDK Website:

    NDK 提供:

    一组用于生成本机代码库的工具和构建文件 来自 C 和 C++ 源代码 一种嵌入对应原生的方式 库到可以部署的应用程序包文件 (.apk) 中 Android 设备上的一组原生系统头文件和库, 将在所有未来版本的 Android 平台中得到支持, 从安卓 1.5 开始。使用本机活动的应用程序 必须在 Android 2.3 或更高版本上运行。文档、样本和 教程

    我也确实找到了this,如果它接近您想要实现的目标。

    【讨论】:

    • 感谢您的快速回复。我已经下载了NDK。我想要做的是将 rsync 源代码编译成可执行的二进制文件,以便我可以在 java 代码中调用这个二进制文件。
    • 如果我理解正确,您不想编译库而是制作可执行文件。我认为这很难实现,我个人会看看是否可以将代码制作成库并以这种方式使用它。我在上面的答案中包含了一些链接和信息。
    • 嗨 kerubu,对不起,我没有注意到您答案的第二个链接。我也偶然发现了那个网站。但我最终使用 NDK 提供的交叉编译器编译代码。谢谢。
    猜你喜欢
    • 2013-01-09
    • 2016-10-25
    • 2018-09-20
    • 2014-02-23
    • 2012-09-16
    • 2020-08-10
    • 2012-04-16
    • 2015-05-29
    相关资源
    最近更新 更多