Gcc 使用libnids编译
我整天都在尝试安装(Ubuntu LTS和Mac OS X),现在我知道了如何用它编译程序 我在这里写这篇文章是因为没有太多文档,但libnids下载文件夹中有一个makefile示例。此makefile的重要内容如下: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
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