Android NDK: ошибки компиляции с использованием libpcap для Android - функции "не объявлены в этой области" - PullRequest
0 голосов
/ 29 марта 2011

Я пытаюсь портировать Jnetpcap (Java-оболочку для libpcap с JNI) на Android. Мне удалось скомпилировать libpcap как статическую библиотеку с использованием исходного кода в этом хранилище: https://github.com/android/platform_external_libpcap, и я получил libpcap.a

При попытке скомпилировать Jnetpcap как разделяемую библиотеку (и связывание с libpcap.a) я получаю ошибки, потому что некоторые функции libpcap «не были объявлены в этой области». Это следующие функции: pcap_create (), pcap_activate (), pcap_can_set_rfmon (), pcap_set_buffer_size (), pcap_set_promisc (), pcap_set_snaplen () и pcap_set_timeout ().

Эти функции существуют в исходной версии libpcap (той, которую предоставляет пакет libpcap-dev), но кажется, что в версии для Android их нет. Те же исходные файлы Jnetpcap могут быть скомпилированы для платформ Intel x86 и x64 без проблем.

Я что-то не так делаю? Эти функции действительно отсутствуют?

Надеюсь, любой из вас, ребята, знает, как это исправить. Спасибо.

1 Ответ

0 голосов
/ 29 марта 2011

К сожалению, похоже, что версия 0.9.8 libpcap не поддерживает эти функции. Версии> = 1.0.0 содержат их. Так что сейчас у вас есть 2 возможности. Скомпилируйте более новую версию libpcap путем модификации Android.mk для старой версии, чтобы немного включить новые файлы. Или понизьте jnetpcap до версии, которая поддерживает старый libpcap. Libpcap 0.9.8, если с 2007 года, поэтому вы должны выбрать jnetpcap примерно с этого года.

...