Я сочинительство этот код:Netfilter очередь неопределенная ссылка на `nfq_open»
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <linux/types.h>
#include <linux/netfilter.h>
#include <libnetfilter_queue/libnetfilter_queue.h>
int main(int argc, char **argv)
{
struct nfq_handle *h;
printf("opening library handle\n");
h = nfq_open();
nfq_close(h);
exit(0);
}
и когда я пытаюсь скомпилировать это говорит, что:
/tmp/ccEv9MYS.o: In function `main':
test1.c:(.text+0x1a): undefined reference to `nfq_open'
test1.c:(.text+0x2a): undefined reference to `nfq_close'
collect2: ld returned 1 exit status
Я попытался проверить, если библиотека найдена gcc, и это (когда я изменяю включение libnetfilter_queue, есть ошибка), я перекомпилировал библиотеку и сделал вывод о том, что в нее входят функции, которые я вызываю.
Если у вас есть какие-либо подсказки, спасибо за помощь
Icompile с помощью этого:
gcc -o test test1.c
Я также пробовал:
gcc -o test -lnetfilter_queue test1.c
gcc -o test -L/usr/local/lib test1.c
Netfilter тег для netfilter_queue (кстати, этот тег не хватает), и я положил его в случае, если кто-то была такая же проблема, но я думаю, что это более общая проблема – user1928596
, пожалуйста, покажите свое заявление о компиляции. –
спасибо за указание, что вне (я отредактировал мой пост, чтобы включить его) – user1928596