2013-09-11 2 views
0

Ниже мой MAKE файл для источника, который я составителя со сборкой AOSPAOSP здание: Сделайте файл разделяемые библиотеки проблема

LOCAL_PATH:= $(call my-dir) 
include $(CLEAR_VARS) 

LOCAL_SRC_FILES:= abc.c 

LOCAL_MODULE:= abc 

LOCAL_FORCE_STATIC_EXECUTABLE := true 

LOCAL_STATIC_LIBRARIES := libc 

LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) 
LOCAL_MODULE_TAGS := debug 

LOCAL_C_INCLUDES += \ 
     $(LOCAL_PATH)/../../../external/sqlite/dist \ 
     $(LOCAL_PATH)/../../../external/sqlite/android 

LOCAL_SHARED_LIBRARIES := \ 
     libsqlite \ 
libsqlite3_android 

include $(BUILD_EXECUTABLE) 

здесь, в источнике abc.c я пытаюсь используйте функции, объявленные в sqlite3.h. Когда я пытаюсь построить андроида источник она возвращается ошибка

no rule libsqlite3_android.so to make target abc.so 

я хочу связать библиотеку SQLite в мой исходный файл.

Plz помогите мне найти, где я ошибаюсь, и как я могу решить проблему.

+0

downvoter уход, чтобы дать причину ?? – Neji

ответ

1

Прежде всего убедитесь, что вы уже создали SQLite3. (Вы должны построить весь проект, прежде чем добавлять какие-либо новые вещи или настраивать любой код)

Во-вторых, убедитесь, что вы строите один и тот же целевой продукт при создании SQLite3. (Убедитесь, что вы выбрали правильное меню, когда вы делаете «обед»).

Последнее, убедитесь, что объекты SQLite3 находятся в целевых папках. YOURANDROIDROOT/out/target/PRODUCTNAME/system/symbols ...

+0

как ?? вы можете предложить любые изменения, которые могут быть полезны в файле выше. – Neji

+0

Ваш файл MK кажется ОК, за исключением одной вещи, которую вы могли бы попытаться заменить LOCAL_SHARED_LIBRARIES на LOCAL_LD_LIBRARIES. Я хочу сказать, что вы должны убедиться, что зависимость SQLite уже присутствует в ваших целевых символах продукта follder – Robin

1

На самом деле вам не нужно связываться с библиотекой libsqlite3_android.

В соответствии с AOSP libsqlite makefile (external/sqlite/android/Android.mk), libsqlite3_android является библиотекой STATIC, которая включена в динамическую библиотеку libsqlite (external/sqlite/dist/Android.mk).

Так что связи с libsqlite должно быть достаточно.

Смежные вопросы