Android NDK编译错误处理-- error: undefined reference to '__dso_handle'
2014-04-02 13:50
645 查看
在编译一个安卓NDK开源项目时,出现了 error: undefined reference to '__dso_handle'的错误。
本次编译采用NDK中的交叉编译器进行,没有使用NDK-BUILD的工具。
百度谷歌后,发现__dso_handle是glibc的一个函数,有诸如增加extern C{ void * __dso_handle = 0 ;}这样的解决办法。
但在本项目中,有一些不可修改的.a也报这个错误,所以认定本次问题为编译问题。然后查找NDK文档,在
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)
本次编译采用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)
相关文章推荐
- error: undefined reference to '__dso_handle'解决方案
- register.o: undefined reference to symbol 'gpg_strerror'编译错误的解法
- 编译Ralink SDK时碰到的奇怪错误(undefined reference to `main')的解决办法
- Android NDK编译之undefined reference to 'JNI_CreateJavaVM'
- Ubuntu11.20 32位linux下编译cppunit报 libcppunit.so: undefined reference to `dlsym'错误问题
- sqlite3 交叉编译 undefined reference to `fdatasync' 错误解决
- undefined reference to 'htons' Android NDK错误
- undefined reference to `assert' 编译错误
- Qt编译错误:undefinedreferenceto`vtable for 。。。。'的解决
- CentOS6下Sphinx2.1.9编译错误undefined reference to 'libiconv'
- linux编译安装php5.4遇到错误:undefined reference to `libiconv_open'
- cocos2d-x 使用ndk编译 x86 出现 in function Curl_resolv_timeout: undefined reference to 'sigsetjmp' 错误
- Libcurl使用OpenSSL编译出现undefined reference to `COMP_CTX_free'错误备忘
- Dev C++中的错误的解决[Linker error] undefined reference to `__dyn_tls_init_callback'
- 编译错误----undefined reference to 'pthread_create'问题解决
- gcc 编译错误:"undefined reference to 'sqrt'
- 编译错误:undefined reference to `clock_gettime'
- 编译Ralink SDK时碰到的奇怪错误(undefined reference to `main')的解决办法
- 编译Ralink SDK时碰到的奇怪错误(undefined reference to `main')的解决办法
- apue 线程代码编译时的 undefined reference to 'pthread_create' 问题处理