如果你使用libnids的API中展示的库函数来编写了一个程序,比如test.c,但是你用gcc -o test test.c编译失败,为什么?因为没有加上库文件,但是你不知道怎么加库文件,加哪些库文件,怎么办?
你可以看libnids的安装包中的示例程序,然后用示例程序的Makefile文件来编译示例程序。你输入make之后,会看到一些命令,不如gcc -o test test.c -lnet -lpcap -lnids,那么,你只需要改变一个程序的命令,以及可能出现的库文件的目录,将这个目录改变为绝对路径就行。
利用pfring.h中的函数编写的程序,如何编译、运行?
#gcc -march=corei7 -mtune=corei7 -O2 -DHAVE_PF_RING -Wall -I../../kernel -I../../kernel/plugins -I../lib -I../libpcap -Ithird-party -D HAVE_ZERO -D ENABLE_BPF -D HAVE_LIBNUMA -O2 -c pfcount.c -o pfcount.o
#gcc -march=corei7 -mtune=corei7 -O2 -DHAVE_PF_RING -Wall -I../../kernel -I../../kernel/plugins -I../lib -I../libpcap -Ithird-party -D HAVE_ZERO -D ENABLE_BPF -D HAVE_LIBNUMA -O2 pfcount.o ../libpcap/libpcap.a ../lib/libpfring.a ../libpcap/libpcap.a -lpthread -lrt -lnuma -lrt -o pfcount
#./pfcount 注意,在运行pfcount时根据程序,可能需要一些参数,比如,这里就需要 -w file.pcap -i eth0 这两个参数。在此处省略只是为了让大家更加清楚这一类问题该怎么编译、运行。