2012-11-15 2 views
0

sqlite 데이터베이스와 함께 원시 C 코드가있는 안드로이드 응용 프로그램을 만들고 있습니다. 내 jni 폴더에서 ndk-build를 수행 할 때 다음 오류가 발생합니다.sqlite 라이브러리 오류가있는 ndk-build

undefined reference to `sqlite3_open' 
peard.c:(.text+0x588): undefined reference to `sqlite3_exec' 
peard.c:(.text+0x5f8): undefined reference to `sqlite3_exec' 
peard.c:(.text+0x668): undefined reference to `sqlite3_exec' 
peard.c:(.text+0x6d8): undefined reference to `sqlite3_prepare_v2' 
peard.c:(.text+0x720): undefined reference to `sqlite3_column_count' 
peard.c:(.text+0x734): undefined reference to `sqlite3_step' 
peard.c:(.text+0x774): undefined reference to `sqlite3_column_text' 
peard.c:(.text+0x78c): undefined reference to `sqlite3_column_name' 
peard.c:(.text+0x800): undefined reference to `sqlite3_close' 

-lsqlite3 명령과 함께 실행하려고했지만 작동하지 않았습니다. 감사합니다. .

답변

0

당신은 만들거나 sqlite3를 설치 (그리고 프로젝트가 따라 다른 모든 비 표준 라이브러리에) 안드로이드에 대한 및하여 -L-I 매개 변수는 SQLite는 라이브러리와 헤더의 팔 버전으로 가리키는 프로젝트를 구축해야 .

+0

내 Make 파일을 사용하면 "make"명령을 실행할 때 제대로 실행할 수 있습니다. ndk 빌드를 수행하면 문제가되지 않습니다. -d를 사용하여 ndk-build 명령 줄 예제를 제공 할 수 있습니까? -L 옵션? – AndroidCrazy

+0

ndk-build -Lsqlite3 -Isqlite3.h. 이 올바른지? 그러나 나는 아직도 그것을 얻지 못하고있다. – AndroidCrazy

+0

당신의'sqlite' 타겟팅 안드로이드는 어디에 설치되어 있습니까? 예를 들어, '/ opt/android/sqlite/lib'에 라이브러리가 있으면 gcc에 매개 변수로'-L/opt/android/sqlite/lib'를 전달해야합니다. 이것은 대개 Android.mk에서 변수'LOCAL_CFLAGS'와 함께 이루어집니다 – hirschhornsalz

1

내 Android.mk 파일의 종속 파일 목록에 sqlite3.c 소스 파일을 추가하여 문제를 해결했습니다. hirschhomsalz에게 감사드립니다.

나린.