2010-05-04 5 views
4

Я хочу сделать приложение для Android, используя огромные сторонние библиотеки, которые используют инструменты сборки Gnu (gnu makefile).Как написать Android.mk для библиотеки с использованием Gnu makefile

Мой вопрос заключается в том, как написать файлы «Android.mk» для этих библиотек, чтобы их создать с помощью системы сборки Android или Android NDK.

Заранее спасибо

ответ

0

Насколько я понимаю, вы должны преобразовать мейкфайлы в андроида формате :( и использовать ndk_buidl построить их

0

единственно возможный путь будет писать мейкфайлы NDK Многие большие библиотеки были перенесены таким образом. Обычно вы должны запускать сценарий configure для генерации файлов config.h и config.mak. Вы можете использовать config.mak, чтобы перечислять ваши источники. Есть учебные пособия по сети для портирования некоторые популярные библиотеки, которые будут созданы с Android NDK. У меня был успех с freetype, ffmpeg, SDL, DevIL и т. д.

0

Вы можете использовать следующие трюки: скачать agcc, а затем скомпилировать вашу библиотеку с ./configure CC=agcc CXX=agcc --host=arm-linux-androideabi && make. После этого создать простой jni/Android.mk так:

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

LOCAL_SRC_FILES := jni.cpp # this file will provide native methods for java part 
LOCAL_LDLIBS += libYourLibraryBuiltWithGNUToolchain.a 
LOCAL_MODULE := YourSoLibrary 

include $(BUILD_SHARED_LIBRARY) 

После этого вы можете создать свой так библиотека с NDK-скрипт сборки.

0

В более поздних версиях ndk вы можете создать автономную инструментальную цепочку, которая инкапсулирует большую часть уникальности Android, чтобы ее можно было вызывать больше, чем обычные программы gcc и поддержки. Это несколько подходит для использования с существующими системами построения проектов, хотя скрипты configure, которые предполагают возможность выполнения тестового кода целевой функции на хосте, будут работать не так, как в случае с кросс-компиляцией.