1

我整天都在尝试安装libnids (Ubuntu LTS 和 Mac OS X),现在我知道如何用它编译程序了。

我在这里写这个是因为没有太多文档,但是在 libnids 下载的文件夹中有带有 makefile 的示例。这个 makefile 的重要内容是:

CC = gcc    
PCAPLIB     = -lpcap    
LNETLIB     = -lnet    
LIBS        = -L../src -lnids $(PCAPLIB) $(LNETLIB) -lgthread-2.0 -lnsl

example:
    $(CC) example.c -o example $(LIBS)

如果你在 Mac OS X 中编译它,请忽略这个: -lgthread-2.0 -lnsl -L../src 但我不知道是否因为这些省略的东西而停止工作。

4

2 回答 2

1

我找到了。最好的方法是编译库,然后使用对“.a”文件的本地引用。

生成文件示例

CC = gcc -g -Wall 
GLIB =  `pkg-config --cflags --libs glib-2.0`
PCAPLIB     = -lpcap
LNETLIB     = -lnet

LIBS_SRC    = libnids-1.24/src/libnids.a
LIBS        = $(PCAPLIB) $(LNETLIB) -lgthread-2.0 

program: program.c
    $(CC) -c $(CFLAGS) program.c -o program.o $(GLIB) $(LIBS)
    $(CC) program.o  -o program $(LIBS_SRC) $(GLIB) $(LIBS)

但是,如果您想编译库并将其安装到您的系统中,您必须使用-lnids而不是上述方式。但是第一个解决方案总是有效的。

于 2012-11-17T13:11:10.087 回答
0

在 libnids 下编译示例时出现错误:

gcc -o 溢出 overflows.o -L../src -lnids -lpcap -lnet -lgthread-2.0 -lnsl ../src/libnids.a /usr/bin/ld: ../src/libnids.a(libnids _ _溢出] 错误 1

你推荐

GLIB =  `pkg-config --cflags --libs glib-2.0`

解决了我的问题。

PS:我的系统Ubuntu 13.10。64位。

于 2013-10-20T14:48:55.140 回答