(在我之前的问题中可以找到一些背景知识,如果它有助于帮助我的话:JamVm not running an application (that uses jpcap) on Gumstix )。
我正试图在Gumstix overo板上运行一个包嗅探java应用程序。这个应用程序是在windows7上使用Netbeans开发的,当我尝试在Gumstix (使用JamVm)上运行它时,我得到了一个错误,说一个文件libjpcap.so丢失了。然后我搜索了angstrom发行版的jpcap包(或libjpcap.so),也搜索了arm架构(不管发行版),但什么都没找到。
因此,按照jpcap网站(http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/install.html)上的建议,我现在正在尝试在我的Gumstix板上编译jpcap源代码。在makefile (/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。这个丢失的文件是导致错误的原因吗?我是不是忘了在什么地方添加一些路径?
任何帮助都将不胜感激。提前谢谢。
发布于 2012-04-11 23:53:00
(回答我自己的问题,希望能对别人有所帮助)
为了在Gumstix上编译jpcap,我首先需要提供以下文件和文件夹: 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/
数据包嗅探应用程序在此之后开始工作。(我希望我没有错过/忘记任何一步。)
发布于 2012-03-21 03:48:02
对于此错误:
JpcapCaptor.c:6:16: error: jni.h: No such file or directory 和另一个-I,并指向jdkInstallRoot目录。
https://stackoverflow.com/questions/9790170
复制相似问题