Eclipse (Java Edition)로 컴파일하는 cocos2dx C ++ Android 프로젝트로 작업하고 있습니다. sqlite3를 사용하려고 할 때까지 모든 것이 훌륭하게 작동했습니다.
코드가 정확하다고 확신합니다.
sqlite3 *pdb = NULL;
int result;
std::string path = FileUtils::getInstance()->getWritablePath();
path.append("mydb.db");
FILE* file = fopen(path.c_str(), "r");
if (file == nullptr) {
CCLOG("no such file");
long size = 0;
const char* data = (char*) FileUtils::getInstance()->getFileData("mydb.db", "rb", &size);
file = fopen(path.c_str(), "wb");
fwrite(data, size, 1, file);
CC_SAFE_DELETE_ARRAY(data);
}
result = sqlite3_open(path.c_str(),&pdb);
if (result != SQLITE_OK)
CCLOG("OPEN FAILED");
else
CCLOG("OPEN WORKED");
char **re;
int r,c;
sqlite3_get_table(pdb,"select * from mytable", &re, &r, &c, NULL);
CCLOG("num of rows is %d, num of columns is %d", r, c);
이러한 오류가 발생합니다.
" 'sqlite3_get_table'에 대한 정의되지 않은 참조"
" 'sqlite3_open'에 대한 정의되지 않은 참조"
win32 빌드와 비슷한 문제가 있었고 Visual Studio에 sqlite 라이브러리를 추가하여 해결되었습니다. 지금 비슷한 문제라고 생각하지만 Eclipse에서 해결하는 방법을 모르겠습니까?
sithereal 도움을 주셔서 감사합니다. 내 Android.mk 파일에 무엇이 잘못되었는지 확실하지 않지만 파일을 지우고 문제를 해결 한 다른 템플릿을 사용했습니다.
내 Android.mk는 이제 다음과 같이 보입니다.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/x.cpp \
../../Classes/y.cpp \
../../Classes/HelloWorldScene.cpp\
../../Classes/sqlite3.c
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static
include $(BUILD_SHARED_LIBRARY)
$(call import-module,.)
그리고 모든 것이 잘 작동합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다