Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C Android上的grep或find_C_Linux_Android Ndk - Fatal编程技术网

C Android上的grep或find

C Android上的grep或find,c,linux,android-ndk,C,Linux,Android Ndk,默认情况下,Android 4.2.1上没有安装这些工具,因此是否可以交叉编译源代码,例如grep或find,并在Android上运行?(最好无需启动设备或安装某些应用程序,例如busybox。)是否有任何缺失的依赖项可以防止这种情况发生?我正在Ubuntu 10.0.04上开发。我把它们放在/system/xbin/*上。也许在busybox上会更走运busybox-findbusybox-grep不确定busybox是否默认安装在Android 4.2tho上,但它是一个非常常见的二进制文件

默认情况下,Android 4.2.1上没有安装这些工具,因此是否可以交叉编译源代码,例如
grep
find
,并在Android上运行?(最好无需启动设备或安装某些应用程序,例如busybox。)是否有任何缺失的依赖项可以防止这种情况发生?我正在Ubuntu 10.0.04上开发。我把它们放在
/system/xbin/*
上。也许在busybox上会更走运
busybox-find
busybox-grep
不确定busybox是否默认安装在Android 4.2tho上,但它是一个非常常见的二进制文件

这不是一个完整的答案,因为我没有尝试构建
grep
find
。然而,一般来说,为Android构建GNU实用程序是完全可能的。为此,最好的选择是:

  • 下载Android本机开发工具包
  • 构建一个安卓系统
  • 只需使用正常的
    /configure&&make
    机制构建相关的GNU实用程序
  • 然后,您需要将生成的二进制文件复制到您的Android设备上,您可以使用
    adb push
    。您可能需要安排将它们放入
    /data/
    的某个位置,因为
    /mnt/sdcard
    通常被标记为不可执行

    缺少依赖项 在实际构建过程中,您会发现的主要问题是Android没有使用标准GNU
    libc
    (glibc)。取而代之的是,它使用自己的,叫做仿生的。这确实遗漏了某些重要的API—例如,广泛的字符串支持

    我发现对于一些GNU实用程序来说,这是可以的,它们只需对源代码进行最小的更改即可编译


    然而,如果您遇到麻烦,您可能最好使用这些实用程序的其他版本,这些版本通常设计为在底层libc方面具有更大的灵活性。具体来说,前面关于使用
    busybox
    的建议非常好。如果您不想从Android market安装它,您可以找到源代码。

    我也使用busybox来实现“grep”功能。。。但如果我从/->根位置搜索所有子目录,它就会像挂起一样停止。你有没有经历过这样的@ablm?最好的答案是你应该在你的android上安装framaroot。那么任何根本行动都可以@cyberSecurity