gpt4 book ai didi

android - NDK12b : Different ELF produced by clang vs gcc using the standalone toolchain and the same build scripts

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:48 24 4
gpt4 key购买 nike

我们的产品包含多个源包。一些源码包是使用 autotool/conf 构建的。

根据谷歌所说的从 NDK-13 开始将 clang 转换为 NDK 的默认编译器,我们继续在 *.mk 文件以及我们的 env 设置和构建脚本中进行转换。没有更改的 make 文件。

我们使用的是旧的 NDK-10d,因此我们切换到 NDK-12b。我们还根据 Android 文档的建议从中生成了一个独立的工具链,以简化我们的构建脚本并实现所有的标准化。

我面临的问题是加载 native 代码后启动时崩溃。我注意到的是 logcat 中关于以下内容的警告:unused DT entry: type 0x6ffffffe (VERNEED) 和 0x6fffffff (VERNEEDNUM)。

然后,可怕的:A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x30 in tid 22246 .

堆栈跟踪告诉我的信息非常非常少:

08-11 15:31:02.421 128-128/? I/DEBUG:     #00 pc 00036b8c  /system/lib/libc.so
08-11 15:31:02.421 128-128/? I/DEBUG: #01 pc 0003817b /system/lib/libc.so (vfprintf+18)
08-11 15:31:02.421 128-128/? I/DEBUG: #02 pc 00035251 /system/lib/libc.so (fprintf+12)
08-11 15:31:02.421 128-128/? I/DEBUG: #03 pc 000015fd /data/app/com.myapp.demo-1/lib/arm/libappdebug.so (pipe_listen+328)
08-11 15:31:02.421 128-128/? I/DEBUG: #04 pc 0001659b /system/lib/libc.so
08-11 15:31:02.421 128-128/? I/DEBUG: #05 pc 000144c3 /system/lib/libc.so

请注意,比较由 readelf -d 转储的 ELF 中的数据显示 arm-linux-androideabi-gcc-4.9 构建生成的二进制文件中缺少这 2 个 DT 条目。

任何想法、指示……任何事情……都将不胜感激,因为我现在已经被困(脸红)3 天了。

谢谢。

最佳答案

您需要检查您的未使用的 DT 条目 的问题。如果您正在使用您的库将内容传输到其他地方,则该警告将在每次运行时出现,并危及您的管道接收垃圾或您的应用程序接收异常。请看我的帖子here .

关于android - NDK12b : Different ELF produced by clang vs gcc using the standalone toolchain and the same build scripts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38908064/

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