交叉编译sqlite到androID平台, AndroID.mk 文件内容如下:
LOCAL_PATH:= $(call my-dir)
INCDIR:=/home/androID-ndk-r6b/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include
# first lib,which will be built statically
#
include $(CLEAR_VARS)
LOCAL_MODulE := cloudstore_MTD
LOCAL_SRC_fileS := deBUG.c hash.c fusex.cpp Listex.c storex.cpp md5.c main.c markup.cpp http_fet
cher.c spthreadpool.c
LOCAL_C_INCLUDES := /home/fuse-2.8.3/include /home/sqlite-autoconf-3070500 /home/androID-ndk-r6b/platf
orms/androID-9/arch-arm/usr/include /home/androID-ndk-r6b/sources/cxx-stl/gnu-libstdc++/include /home/a
ndroID-ndk-r6b/samples/fuse-androID/jni/include $(INCDIR)
LOCAL_CFLAGS :=-Wall -lulockmgr -pipe -D_file_OFFSET_BITS=64 -D_DEBUG -DANDROID_SDK -DUSE_OPEN -DUSE_TH
READ -DDEBUG -O2
LOCAL_CPPFLAGS :=
include $(BUILD_EXECUtable)
在jni目录下面执行 /home/androID-ndk-r6b/ndk-build , 编译, 总是出现如下错误:
[root@localhost jni]# /home/androID-ndk-r6b/ndk-build
Compile thumb : sqlite3_androID <= shell.c
Compile thumb : sqlite3 <= sqlite3.c
Staticlibrary : libsqlite3.a
Executable : sqlite3_androID
/home/androID-ndk-r6b/samples/sqlite-androID/obj/local/armeabi/libsqlite3.a(sqlite3.o): In function `unixSync':
sqlite3.c:(.text.unixSync+0x6): undefined reference to `fdatasync'
sqlite3.c:(.text.unixSync+0x14): undefined reference to `fdatasync'
collect2: ld returned 1 exit status
make: *** [/home/androID-ndk-r6b/samples/sqlite-androID/obj/local/armeabi/sqlite3_androID]
搜索了好多地方, 找解决问题的办法, 最后还是在官方BUG列表里面找到了, 原来是一个BUG, 下来就下载了最新的版本后, 重新编译, 问题解决。
最新的版本为 sqlite-autoconf-3070800.tar.gz
人生就是这样啊。
总结以上是内存溢出为你收集整理的sqlite3 交叉编译 undefined reference to `fdatasync' 错误解决全部内容,希望文章能够帮你解决sqlite3 交叉编译 undefined reference to `fdatasync' 错误解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)