[安卓]2dx 转译到 android 小记II

本文记录了在使用 Cocos2d-x 构建 Android 项目时遇到的 SQLite 相关符号未定义错误。错误发生在链接阶段,涉及多个 SQLite 函数如 sqlite3CodecGetKey 和 sqlite3_key_v2 等。通过分析编译日志,指出了可能的原因在于 SQLite 的加密支持未正确配置或缺失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Compile++ thumb  : cocos2dcpp_shared <= unknown_field_set.cc
Compile++ thumb  : cocos2dcpp_shared <= wire_format.cc
Compile++ thumb  : cocos2dcpp_shared <= wire_format_lite.cc
SharedLibrary  : libcocos2dcpp.so
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function sqlite3VdbeExec:jni/../../libs.cpp/sqlite3/sqlite3.c:111800: error: undefined reference to 'sqlite3CodecGetKey'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function sqlite3Pragma:jni/../../libs.cpp/sqlite3/sqlite3.c:103074: error: undefined reference to 'sqlite3_key_v2'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function sqlite3Pragma:jni/../../libs.cpp/sqlite3/sqlite3.c:103076: error: undefined reference to 'sqlite3_rekey_v2'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function sqlite3Pragma:jni/../../libs.cpp/sqlite3/sqlite3.c:103086: error: undefined reference to 'sqlite3_activate_see'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function attachFunc:jni/../../libs.cpp/sqlite3/sqlite3.c:87836: error: undefined reference to 'sqlite3CodecGetKey'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function attachFunc:jni/../../libs.cpp/sqlite3/sqlite3.c:87838: error: undefined reference to 'sqlite3CodecAttach'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Classes/DbUtils.o: in function DbUtils::open():jni/../../Classes/DbUtils.cpp:230: error: undefined reference to 'sqlite3_key'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libcocos2dcpp.so] Error 1
make: Leaving directory `/Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android'

sogas-Mac-mini:~ soga$ /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android/build_native.sh
NDK_ROOT = /Users/soga/Downloads/android-ndk-r8e
COCOS2DX_ROOT = /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android/../../..
APP_ROOT = /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android/..
APP_ANDROID_ROOT = /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android
Using prebuilt externals
make: Entering directory `/Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android'
Compile thumb  : cocos2dcpp_shared <= sqlite3.c
cc1: warning: command line option '-Wno-conversion-null' is valid for C++/ObjC++ but not for C [enabled by default]
SharedLibrary  : libcocos2dcpp.so
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function sqlite3VdbeExec:jni/../../libs.cpp/sqlite3/sqlite3.c:111803: error: undefined reference to 'sqlite3CodecGetKey'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function sqlite3Pragma:jni/../../libs.cpp/sqlite3/sqlite3.c:103077: error: undefined reference to 'sqlite3_key_v2'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function sqlite3Pragma:jni/../../libs.cpp/sqlite3/sqlite3.c:103079: error: undefined reference to 'sqlite3_rekey_v2'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function sqlite3Pragma:jni/../../libs.cpp/sqlite3/sqlite3.c:103089: error: undefined reference to 'sqlite3_activate_see'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function attachFunc:jni/../../libs.cpp/sqlite3/sqlite3.c:87839: error: undefined reference to 'sqlite3CodecGetKey'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o: in function attachFunc:jni/../../libs.cpp/sqlite3/sqlite3.c:87841: error: undefined reference to 'sqlite3CodecAttach'
/Users/soga/Downloads/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Classes/DbUtils.o: in function DbUtils::open():jni/../../Classes/DbUtils.cpp:230: error: undefined reference to 'sqlite3_key'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libcocos2dcpp.so] Error 1
make: Leaving directory `/Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值