You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android平台OEX国际象棋程序运行失败:Native库段错误求助

问题:Android Native库段错误,缺少链接器信息

背景

我正在为Android平台实现一款基于OEX(Open Engine Exchange Protocol)的国际象棋程序。程序的Java部分运行正常,但Native库总是出现段错误,哪怕是最基础的测试代码也无法正常执行。

测试代码

#include <stdio.h>

int main(int argc, char *argv[])
{
        printf("Hello, world!\n");

        return 0;
}

关键差异

对比正常工作的libstockfish.so和我构建的libDog.so,发现后者缺少链接器解释器信息:

file libs/x86_64/libstockfish.so:
ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /system/bin/linker64, BuildID[sha1]=b690a6bb7630099c6618950a9e1604850f1de836, stripped

file libs/x86_64/libDog.so
libs/x86_64/libDog.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=93a9d3635eef9fc0f2140a87956db9ac80459993, stripped

构建配置

我使用ndk-build脚本进行构建,相关配置如下:

jni/Application.mk

APP_ABI := all
APP_PLATFORM     := 21
#NDK_TOOLCHAIN_VERSION := 4.9
APP_STL := c++_shared
APP_CPPFLAGS += -frtti
APP_CPPFLAGS += -std=c++17

jni/Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := Dog
LOCAL_SRC_FILES := test.cpp

LOCAL_STRIP_MODE := none

LOCAL_PRELINK_MODULE := false

LOCAL_CPPFLAGS += -std=c++17 -Wall -DVERSION=\"0.8\" -DNAME_EXTRA=\"\" -fexceptions -Wno-c++11-narrowing -fPIC -pie -fPIE
LOCAL_LDLIBS += -shared
LOCAL_LDFLAGS += -fPIC -pie -fPIE -Wl,--entry=main,-dynamic-linker=/system/bin/linker

LOCAL_CPP_FEATURES := exceptions

include $(BUILD_SHARED_LIBRARY)

请求解决思路

恳请各位提供解决该段错误及链接器信息缺失问题的思路。

内容的提问来源于stack exchange,提问作者Folkert van Heusden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:40:57