Компиляция / установка jpcap не удалась в Gumstix - PullRequest
0 голосов
/ 20 марта 2012

(Немного предыстории можно найти в моем предыдущем вопросе здесь, если это поможет кому-то помочь мне: JamVm не запускает приложение (использующее jpcap) на Gumstix ).

Я пытаюсь запустить Java-приложение для сниффинга пакетов на плате Gumstix overo. Приложение было разработано с использованием Netbeans на Windows 7. Когда я попытался запустить его на Gumstix (используя JamVm), я получил сообщение об ошибке, указывающее, что отсутствует файл libjpcap.so. Затем я искал пакет jpcap (или libjpcap.so) для распространения angstrom, а также для архитектуры arm (независимо от дистрибутива), но ничего не смог найти.

Поэтому, как предлагается на веб-сайте jpcap (http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/install.html),, я сейчас пытаюсь скомпилировать исходный код jpcap на моей плате Gumstix. В make-файле (/ src / c / Makefile) я установил JAVA_HOME в значение / usr / java / latest. Когда я выполняю 'make', я получаю большое количество ошибок. Некоторые из них показаны ниже:

root@overo:/usr/src/jpcapTar/jpcap-0.7/src/c# make
gcc -shared -L. -I/usr/java/latest/include -I/usr/java/latest/include/linux\
         -I/usr/include\
        JpcapCaptor.c JpcapSender.c JpcapWriter.c\
          packet_arp.c packet_datalink.c packet_icmp.c packet_ip.c\
          packet_ipv6.c packet_tcp.c packet_udp.c\
        -o libjpcap.so -lpcap
JpcapCaptor.c:6:16: error: jni.h: No such file or directory
JpcapCaptor.c:7:17: error: pcap.h: No such file or directory
In file included from JpcapCaptor.c:35:
Jpcap_sub.h:53: error: expected '=', ',', ';', 'asm' or '__attribute__' before '
*' token
Jpcap_sub.h:54: error: expected '=', ',', ';', 'asm' or '__attribute__' before '
*' token
Jpcap_sub.h:55: error: 'PCAP_ERRBUF_SIZE' undeclared here (not in a function)
Jpcap_sub.h:57: error: expected '=', ',', ';', 'asm' or '__attribute__' before '
JpcapHandler'
Jpcap_sub.h:59: error: expected '=', ',', ';', 'asm' or '__attribute__' before '
UnknownHostException

Увидев, что jni.h вызвал первое сообщение об ошибке, я обыскал свой ящик linux и не смог найти jni.h. Является ли этот отсутствующий файл причиной ошибок? Я забыл добавить куда-нибудь пути?

Любая помощь будет принята с благодарностью. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 11 апреля 2012

(отвечая на мой вопрос в надежде, что это может кому-то помочь)

Для компиляции jpcap в Gumstix мне сначала пришлось предоставить следующие файлы и папки: 1) jni.h (я получил его из исходного кода jamvm) 2) исходный код libpcap-1.1.1 (загружается из tcpdump )

Теперь в файле jpcap make (расположенном в /jpcap-0.7/src/c/) я изменил JAVA_DIR и PCAP_INCLUDE, чтобы они указывали на папку, в которую я только что загрузил libpcap и jni.h.

Jpcap по-прежнему не будет компилироваться. Он ищет файл с именем «libpcap.so», тогда как мой gumstix получил «libpcap.so.1». Поэтому я создал символическую ссылку, указывающую на этот файл:

ln --symbolic libpcap.so.1 libpcap.so

Выполнение make на этот раз привело к созданию файла libjpcap.so. Затем я скопировал этот файл в / usr / lib / и указал LD_LIBRARY_PATH на эту папку:

export LD_LIBRARY_PATH = / usr / lib /

После этого приложение перехвата пакетов начало работать. (Надеюсь, я не пропустил / не забыл ни одного шага.)

0 голосов
/ 20 марта 2012

Для этой ошибки:

JpcapCaptor.c:6:16: error: jni.h: No such file or directory 

и еще один -I и указать на каталог jdkInstallRoot \ include.

...