我在使用arm-gcc编译器编译的c代码中使用了string.h头文件,生成的可执行文件将在android设备上执行。 当我将可执行文件推送到设备并执行它时,它向我显示了链接错误。 如何在这样的设备上使用string.h中的函数? 这些头文件是否特定于硬件?
答案 0 :(得分:1)
ARM EABI规定,ANSI C库的头文件应由编译器独立于库所在的位置提供。如果您是交叉编译,则必须确保使用编译器附带的string.h
,而不是本机系统。你得到了什么联系错误?
strstr
听起来似乎libc
,这听起来很奇怪,我没有解释。如果您有权访问设备上的库,那么我会检查objdump -t
是否定义了strstr
。
答案 1 :(得分:0)
如何在这样的设备上使用string.h中的函数?
过去它对我有用。
这些头文件是否特定于硬件?
使用NDK工具,它们是特定的架构和平台(例如,Android 8,Android 14等)。
除非NDK中存在严重错误(似乎不太可能),否则我想你可能想再次查看你的版本。