Android NDK编译错误处理-- error: undefined reference to '__dso_handle'

来源:互联网 发布:山长水阔知何处 编辑:程序博客网 时间:2024/05/17 03:37

在编译一个安卓NDK开源项目时,出现了 error: undefined reference to '__dso_handle'的错误。

本次编译采用NDK中的交叉编译器进行,没有使用NDK-BUILD的工具。

百度谷歌后,发现__dso_handle是glibc的一个函数,有诸如增加extern C{ void * __dso_handle = 0 ;}这样的解决办法。

但在本项目中,有一些不可修改的.a也报这个错误,所以认定本次问题为编译问题。然后查找NDK文档,在

USING THE ANDROID TOOLCHAIN AS A STANDALONE COMPILER

一节中,讲述了在编译时,要设置SYSROOT,所以在Makefile中,增加如下修改,问题解决。--其中红色部分为新增

CC := $(ANDROID_NDK_HOME)/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=$(SYSROOT)
GCC := $(ANDROID_NDK_HOME)/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-g++--sysroot=$(SYSROOT)

0 0
原创粉丝点击