gpt4 book ai didi

android - NDK 需要 gnuSTL_static std::string 而不是 std::_ndk1::string

转载 作者:行者123 更新时间:2023-12-02 09:47:49 25 4
gpt4 key购买 nike

我正在挂接一个使用 gnuSTL std::string 而不是 libc++ std::_ndk1::string 编译的现有库。如果我尝试设置或访问这些字符串,我只会得到垃圾。如何在我的 Hook 应用程序中将我的 std::string 转换为 std::_ndk1::string,反之亦然?

我无法使用“-DANDROID_STL=gnuSTL_shared”编译我的钩子(Hook),因为它不再存在并且其他正在使用的库需要 libc++。

文档提到了这个 https://developer.android.com/ndk/guides/cpp-support “各种 STL 彼此不兼容。例如,libc++ 中 std::string 的布局与 gnuSTL 中的布局不同”,这正是问题所在。

最佳答案

要使用gnuSTL,您可以使用NDK r.17 编译所有本地代码。或更老。这是一条危险的道路,因为许多重要的错误,包括与安全相关的错误,都已从那时起得到修复。

另一种不受支持(且不推荐)的处理问题的方法是从 NDK r.17 获取 gnuSTL 源代码并使用最新的 NDK 版本编译它们。

您最好的选择是使用最新版本的 NDK 及其 c++_shared 运行时库重新构建所有依赖项。

关于android - NDK 需要 gnuSTL_static std::string 而不是 std::_ndk1::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63844356/

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