gpt4 book ai didi

Android NDK-arm-linux-androideabi-g++ : not found

转载 作者:IT王子 更新时间:2023-10-29 00:31:38 25 4
gpt4 key购买 nike

我正在尝试在我刚刚为此安装的全新 Ubuntu 中为 Android 目标构建 C++ POCO 库。

我已经在 /home/user/dev/Android/android-ndk-r9-x86 中安装了 Android NDK,并使用以下方法在环境变量中添加了 NDK 的路径:

export ANDROID_NDK_ROOT=/home/user/dev/Android/android-ndk-r9-x86

为了构建库,我首先移动到 POCO 库的根目录,并使用以下命令对其进行配置:

./configure --omit=NetSSL_OpenSSL,Crypto,Data/ODBC,Data/MySQL --static --config=Android

因此它编译静态 .a 库,不编译我不想要的模块并为 Android 目标编译。

但是调用 make 会导致以下错误:

user@user-VirtualBox:~/dev/Lib/POCO/poco-1.6.1$ make
make -C /home/user/dev/Lib/POCO/poco-1.6.1/Foundation
make[1]: Entering directory `/home/user/dev/Lib/POCO/poco-1.6.1/Foundation'
** Compiling src/ArchiveStrategy.cpp (debug, static)
arm-linux-androideabi-g++ -Iinclude -I/home/user/dev/Lib/POCO/poco-1.6.1/CppUnit/include -I/home/user/dev/Lib/POCO/poco-1.6.1/CppUnit/WinTestRunner/include -I/home/user/dev/Lib/POCO/poco-1.6.1/Foundation/include -I/home/user/dev/Lib/POCO/poco-1.6.1/XML/include -I/home/user/dev/Lib/POCO/poco-1.6.1/JSON/include -I/home/user/dev/Lib/POCO/poco-1.6.1/Util/include -I/home/user/dev/Lib/POCO/poco-1.6.1/Net/include -mthumb -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions -DPOCO_BUILD_HOST=user-VirtualBox -DPOCO_ANDROID -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -DPOCO_NO_SHAREDMEMORY -g -D_DEBUG -c src/ArchiveStrategy.cpp -o /home/user/dev/Lib/POCO/poco-1.6.1/Foundation/obj/Android/armeabi/debug_static/ArchiveStrategy.o
sh: 1: arm-linux-androideabi-g++: not found
make[1]: *** [/home/user/dev/Lib/POCO/poco-1.6.1/Foundation/obj/Android/armeabi/debug_static/ArchiveStrategy.o] Error 127
make[1]: Leaving directory `/home/user/dev/Lib/POCO/poco-1.6.1/Foundation'
make: *** [Foundation-libexec] Error 2

Make 似乎无法找到用于 Android 的编译器,我不知道为什么?我错过了什么? “安装”NDK 时我忘记了什么吗?

谢谢。

最佳答案

您遇到的错误是由缺少工具链调用引起的 - 相反,找不到 arm-linux-androideabi-g++ 命令/可执行文件/二进制文件。

幸运的是,我们可以通过安装 Standalone toolchain 来解决这个问题- 那个实际上有你所缺少的东西,一个通用的 arm-linux-androideabi 交叉编译器,而不是其他一些更晦涩的,特定于供应商/平台的交叉编译器/工具链,例如 marvell 使用的 armv7a-marvell-linux-android,或 Clang 使用的 arm-linux-android。有关 Clang 的更多信息,look here .虽然我可能是错的,但 Clang 实际上会生成开箱即用的 arm-linux-androideabi 工具链,但我不确定。我知道您可以轻松使用它,我只是不确定它是否可以“直接开箱即用”,这正是您想要的。 “剩下的工作”只是一些路径导出——但仍然如此。我们的目标是在这里找到最懒惰的解决方案。

独立工具链应该足以完成您的任务,因此请尝试尽可能多地使用它而不是任何其他交叉编译解决方案。

但是,如果您喜欢冒险 - 您可以使用 crosstool-ng 工具自由制作自己的交叉编译器(或整个工具链!)。但是,尽量坚持使用 Linaro libc 分支;个人经验告诉我,一个方法在某种程度上效果最好,并且导致的问题/时间浪费最少。

此外,请确保为您的体系结构(体系结构)和操作系统下载正确的版本,32 位与 64 位在这里也很重要。经过长时间的讨论,我们意识到这是一个“32 位与 64 位”的问题。 Here's a link阅读更多相关信息。

关于Android NDK-arm-linux-androideabi-g++ : not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35178293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com