如何link android 可执行.o 文件?

How to link android executable with .o file?

我想 link 我的可执行文件带有 .o 文件,我可以这样做吗?

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := testo
LOCAL_SRC_FILES := main.c

include $(BUILD_EXECUTABLE)

我使用 ld -r -b 二进制数据 -o data.o

创建了 data.o 文件

我有这个代码:

extern int binary_data_size;
int main(){
printf("Data size: %d\n",binary_data_size);
return 0;
}

编译时出现错误:

错误:对 'binary_data_size'

的未定义引用

您可以使用

LD_LIBS += data.o

请注意,Android.mk 最后只是一个 makefile,因此您还可以使用

这一行
data.o: binary data
    $(NDK_LD) -r -b binary data -o data.o

ndk-build 评估 Android.mk 而当前目录通常是上一层。您还需要来自当前 NDK 工具链的 ld 可执行文件。