Проблемы компиляции avahi в проект Android NDK

За последние несколько дней яУ нас были трудности с попыткой встроить avahi в статическую или общую библиотеку для использования с существующим проектом Android NDK.

У нас есть несколько игр в магазинах приложений и игр, и моя задача - заставить мультиплеер работать в версиях для Android. В частности, задача включает в себя замену компонента Bonjour, чтобы эти игры могли соединяться друг с другом через zeroconf.

Исследования, похоже, указывают на то, что avahi - это то, что мыищем, но на данный момент яЯ открыт для всего, что будет работать! Я

Я надеюсь, что кто-то здесь может помочь мне скомпилировать avahi или предложить другую, более подходящую (и более простую в установке) библиотеку.

Проект использует android-ndk-r8b и собирается на OSX 10.7.4 с использованием командной строки (не eclipse)

Получил последний источник Avahi отсюда:http://www.linuxfromscratch.org/blfs/view/svn/basicnet/avahi.html

доморощенные все необходимые библиотеки, чтобы получить ./configure для запуска без ошибок.

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-static --disable-mono --disable-monodoc  --disable-gdbm --disable-libdaemon --disable-nls --disable-gtk --disable-gtk3 --disable-python --disable-qt3 --disable-qt4 --enable-core-docs --with-distro=none

./configure запускается без видимых красных флажков.

сделать результаты в этой ошибке компиляции:

socket.c: In function 'ipv6_pktinfo':
socket.c:271: warning: unused variable 'yes' [-Wunused-variable]
socket.c:270: warning: unused parameter 'fd' [-Wunused-parameter]
socket.c: In function 'avahi_send_dns_packet_ipv6':
socket.c:609: error: 'IPV6_PKTINFO' undeclared (first use in this function)
socket.c:609: error: (Each undeclared identifier is reported only once
socket.c:609: error: for each function it appears in.)
socket.c: In function 'avahi_recv_dns_packet_ipv6':
socket.c:869: error: 'IPV6_HOPLIMIT' undeclared (first use in this function)
socket.c:878: error: 'IPV6_PKTINFO' undeclared (first use in this function)
make[2]: *** [libavahi_core_la-socket.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Понял, что этоне работает против библиотек android-ndk-r8b и не находит ipv6.h или что-то в этом роде.

Проверял мой файл .bash_profile.sh:

export PATH=/Users/Muy01/Projects/Development/Android/android-sdks/tools/:$PATH
export PATH=/Users/Muy01/Projects/Development/Android/android-sdks/platform-tools/:$PATH
export PATH=/Users/Muy01/Projects/Development/Android/android-ndk-r8b/:$PATH

добавили --host = arm-linux-androideabi в список аргументов ./configure, что привело к этой ошибке:

checking host system type... Invalid configuration `arm-linux-androideabi': system `androideabi' not recognized

не мог»Не могу понять, как получить список доступных типов хост-систем, поэтому изменил направление и решил попробовать собрать статическую библиотеку через файл Android.mk.

Нашел этот пост по созданию соответствующего файла Android.mk:Можно'т компилировать авахи на андроид

Понял, что я неФайлы Android.mk находятся во всех подкаталогах.

Исследовал, загружал, собирал Androgenizer, чтобы попытаться преобразовать все файлы Makefile.am в файлы Android.mk.http://cgit.collabora.com/git/user/derek/androgenizer.git/

не мог»t выяснить или найти информацию о том, как это сделать, хотя = /

Решил попробовать и создать свой собственный файл Android.mk:

LOCAL_PATH := $(call my-dir)
ROOT_LOCAL_PATH :=$(call my-dir)

#Build avahi into a static lib
include $(CLEAR_VARS)
AVAHI_TOP := $(ROOT_LOCAL_PATH)/../avahi-0.6.31

MY_SOURCES := $(wildcard $(AVAHI_TOP)/avahi-core/*.c*)
MY_SOURCES += $(wildcard $(AVAHI_TOP)/avahi-common/*.c*)
LOCAL_C_INCLUDES := $(AVAHI_TOP)
LOCAL_SRC_FILES := $(MY_SOURCES:$(LOCAL_PATH)%=%)

LOCAL_MODULE    := avahi

include $(BUILD_STATIC_LIBRARY)

Приводит к ошибкам времени компиляции для avahi-core / iface-linux.c: 33: 0:

/avahi-0.6.31/avahi-core/iface-linux.h:27:8: Redefinition of 'struct AvahiInterfaceMonitorOSDep'
/avahi-0.6.31/avahi-core/iface.h:46:16: Originally defined here
/avahi-0.6.31/avahi-core/iface-linux.h:33:9: Redeclaration of enumerator 'LIST_IFACE'
/avahi-0.6.31/avahi-core/iface.h:52:9: Previous definition of 'LIST_IFACE' was here
/avahi-0.6.31/avahi-core/iface-linux.h:34:9: Redeclaration of enumerator 'LIST_ADDR'
/avahi-0.6.31/avahi-core/iface.h:53:9: Previous definition of 'LIST_ADDR' was here
/avahi-0.6.31/avahi-core/iface-linux.h:35:9: Redeclaration of enumerator 'LIST_DONE'
/avahi-0.6.31/avahi-core/iface.h:54:9: Previous definition of 'LIST_DONE' was here
/jni//../avahi-0.6.31/avahi-core/iface-linux.c: In function 'netlink_callback':

И теперь яЯ почти застрял.

Я пробовал #if 0 'Извлечение файлов iface-linux.c и h, приводящих к каскадному множеству других ошибок, так что, вероятно, это плохая идея.

Думая, что это может быть что-то ячто-то не так с командой ./configure? Возможно, проблема с моим файлом Android.mk?

Я полагаю, что это должно быть чем-то, с чем сталкиваются многие разработчики, поэтому яЯ, вероятно, что-то упустил, потому что я могуКажется, я не нашел никакой полезной информации через Google.

Любая помощь приветствуется! Я'мы также отправили это в список рассылки avhi, если я получу ответ, я опубликую его здесь для потомков.

Спасибо, Крис

Ответы на вопрос(2)

Ваш ответ на вопрос