Android ndk 为arm处理器构建android adb

Android ndk 为arm处理器构建android adb,android-ndk,Android Ndk,我想在ARM平台上使用Android ADB工具。生成脚本中的一个命令是: 我已经确保安装了最新的ndk-r5b,这应该可以解决STL问题。但是,我仍然得到以下错误: In file included from build/libs/host/pseudolocalize.cpp:1: build/libs/host/include/host/pseudolocalize.h:4:18: error: string: No such file or directory In file incl

我想在ARM平台上使用Android ADB工具。生成脚本中的一个命令是:

我已经确保安装了最新的ndk-r5b,这应该可以解决STL问题。但是,我仍然得到以下错误:

In file included from build/libs/host/pseudolocalize.cpp:1:
build/libs/host/include/host/pseudolocalize.h:4:18: error: string: No such file or directory
In file included from build/libs/host/pseudolocalize.cpp:1:
build/libs/host/include/host/pseudolocalize.h:6: error: 'string' in namespace 'std' does not name a type
build/libs/host/pseudolocalize.cpp: In function 'const char* pseudolocalize_char(char)':
build/libs/host/pseudolocalize.cpp:61: error: 'NULL' was not declared in this scope
build/libs/host/pseudolocalize.cpp: At global scope:
build/libs/host/pseudolocalize.cpp:71: error: 'string' does not name a type
有人知道如何解决这个问题吗?顺便说一句,通过以下链接可以很好地构建intel版本的adb:


亚洲开发银行不需要pseudolocalize.cpp。NDK工具链旨在使用仿生(Android libc)构建。亚洲开发银行要求glibc(GNU libc)进行建设

我创建了一个Makefile来为Linux/ARM编译adb。此Makefile为Linux/ARM生成静态链接的adb可执行二进制文件,因此它也适用于Android/ARM

如何制作

  • 安装和GNU制作
  • 下载“”
  • 另存为system/core/adb/Makefile
  • cd系统/核心/亚洲开发银行;制造

  • 我看到这篇文章很老了,不管怎样,它帮助了我。 我没有找到

    “用于ARM和GNU Make的Sourcery G++Lite。”

    但是,按照gcc 4:4.6.3-1ubuntu5的其他步骤,为我的ARMv7构建/运行

  • 不适用
  • 下载“Android源代码”
  • 将Makefile另存为system/core/adb/Makefile。 3b。将Makefile编辑为CC=gcc和LD=gcc
  • cd系统/核心/亚洲开发银行;制造

  • 如果需要为ARM构建ADB(1.0.31版),请查看


    存储库包含一个一体式构建脚本,以及一个预编译的ARM二进制文件

    谢谢你的回复,Kazuki。我明天一定会试试的。您如何知道adb不需要pseudolocalize.cpp?我在哪里可以找到依赖关系?我还可以在ndk下使用arm-eabi-g++而不是在arm上使用Sourcery g++lite吗?我真的很感谢你的帮助。Thankssystem/core/adb/Android.mk告诉依赖项。当然,您可以使用arm-eabi-g++,但您还需要构建GNU libc,或者修改adb以摆脱对GNU libc的依赖。以下是我在完成列出的所有操作后得到的结果:/root/codesource/Sourcery\u G++u Lite/bin/。/lib/gcc/arm none linux gnueabi/4.5.2/。/../../../../arm none linux gnueabi/bin/ld:找不到-lncurses服务。o:在函数'dns_service'中:/root/myrepo/system/core/adb/services.c:65:警告:在静态链接的应用程序中使用“gethostbyname”需要在运行时使用glibc版本中用于链接collect2:ld的共享库返回1退出状态make:**[adb]错误1我这样做时得到的结果是:找到libncurses/lib/libncurses.so.5/lib/libncurses.so.5/lib32/libncurses.so.5.7/root/myrepo/prebuild/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/libncurses.so/root/myrepo/prebuilded/linux-x86/toolchain/i686-linux-glibc2.7-4.3/libncurser.5/sysncurses/root/myrepo/prebuild/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/lib/libncurses.so.5.6/usr/lib/libncurses.so/usr/lib/libncurses.so.5/usr/lib32/libncurses.soHmm,CodeSourcery linux工具链具有libncurses。你能检查一下安装情况吗?谢谢@transistor1它随时都能帮上忙!很高兴它帮助了你。2018年,仍然看到未经内容提供商omg检查的死链接@transistor1与beaglebone android资源的链接不再存在。@erm3nda删除了我的注释,因为该文件不再托管。我认为基于Debian apt的发行版现在可能有一个adb包。如果需要二进制文件,您可能需要查看该文件。基于脚本和Arch Linux构建文件,我可以构建版本1.0.32。非常感谢。@zgoda很好!如果你能以某种方式与我们分享你的结果,那就太好了!
    In file included from build/libs/host/pseudolocalize.cpp:1:
    build/libs/host/include/host/pseudolocalize.h:4:18: error: string: No such file or directory
    In file included from build/libs/host/pseudolocalize.cpp:1:
    build/libs/host/include/host/pseudolocalize.h:6: error: 'string' in namespace 'std' does not name a type
    build/libs/host/pseudolocalize.cpp: In function 'const char* pseudolocalize_char(char)':
    build/libs/host/pseudolocalize.cpp:61: error: 'NULL' was not declared in this scope
    build/libs/host/pseudolocalize.cpp: At global scope:
    build/libs/host/pseudolocalize.cpp:71: error: 'string' does not name a type