微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Buck 使用了错误的 Android SDK 工具链

如何解决Buck 使用了错误的 Android SDK 工具链

我正在尝试将原生 Android C++ 库从 CMake 构建转换为 Buck。使用链接时间优化(-flto 编译器标志)构建时,它会崩溃。我想我找到了原因。原始 CMake 构建将 gcc-toolchain 和 sysroot 设置为以下内容

--gcc-toolchain=/Users/me/Library/Android/sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/darwin-x86_64
--sysroot=/Users/me/Library/Android/sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/darwin-x86_64/sysroot

而我的 Buck 构建对它们进行了不同的设置:

--gcc-toolchain /Users/me/Library/Android/sdk/ndk/21.3.6528147/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64
--sysroot=/Users/me/Library/Android/sdk/ndk/21.3.6528147/platforms/android-21/arch-arm64

这会导致执行不同版本的 ranlib,它似乎没有正确索引 .a 文件。 我没有在配置中的任何地方明确设置这些路径,所以我猜 CMake 和 Buck 都在以某种方式推断它们并最终得到不同的结果。 你知道我怎么能指示巴克寻找另一组工具吗?似乎没有设置ranlib路径的方法。谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。