Gcc 使用libnids编译

Gcc 使用libnids编译,gcc,libpcap,Gcc,Libpcap,我整天都在尝试安装(Ubuntu LTS和Mac OS X),现在我知道了如何用它编译程序 我在这里写这篇文章是因为没有太多文档,但libnids下载文件夹中有一个makefile示例。此makefile的重要内容如下: CC = gcc PCAPLIB = -lpcap LNETLIB = -lnet LIBS = -L../src -lnids $(PCAPLIB) $(LNETLIB) -lgthread-2.0 -lnsl exam

我整天都在尝试安装(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
但是我不知道是不是因为这些遗漏的东西而停止了工作。

我找到了它。最好的方法是编译库,然后使用对“.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而不是上述方法。但是第一种解决方案总是有效的。

我找到了。最好的方法是编译库,然后使用对“.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而不是上述方法。但是第一种解决方案总是有效的。

我在libnids下编译示例时出错:

gcc-o overflows-overflows.o-L../src-lnids-lpcap-lnet-lgthread-2.0-lnsl../src/libnids.a /usr/bin/ld:../src/libnids.a(libnids.o):对符号“g\u async\u queue\u pop”的未定义引用 /lib/x86_64-linux-gnu/libglib-2.0.so.0:添加符号时出错:命令行中缺少DSO collect2:错误:ld返回了1个退出状态 make:[overflows]错误1

你的推荐

GLIB =  `pkg-config --cflags --libs glib-2.0`
解决我的问题


我的系统Ubuntu 13.10。64位。

在libnids下编译示例时出错:

gcc-o overflows-overflows.o-L../src-lnids-lpcap-lnet-lgthread-2.0-lnsl../src/libnids.a /usr/bin/ld:../src/libnids.a(libnids.o):对符号“g\u async\u queue\u pop”的未定义引用 /lib/x86_64-linux-gnu/libglib-2.0.so.0:添加符号时出错:命令行中缺少DSO collect2:错误:ld返回了1个退出状态 make:[overflows]错误1

你的推荐

GLIB =  `pkg-config --cflags --libs glib-2.0`
解决我的问题


我的系统Ubuntu 13.10。64位。

如果在库安装过程中收到如下警告,请不要担心:hash.c:18:警告:忽略“read”的返回值,使用属性warn\u unused\u result声明您可能需要安装的唯一依赖项是:libglib2.0-dev如果在库安装过程中收到如下警告,请不要担心:hash.c:18:警告:忽略“read”的返回值,使用属性warn\u unused\u result声明您可能需要安装的唯一依赖项是:libglib2.0-dev