* c++ linking problems
@ 2006-04-12 21:03 Jay Hester
2006-04-12 21:23 ` Julien VALIENTE
2006-04-13 6:44 ` Martijn Lievaart
0 siblings, 2 replies; 3+ messages in thread
From: Jay Hester @ 2006-04-12 21:03 UTC (permalink / raw)
To: netfilter-devel
Hello,
This is probably something easy that i'm overlooking, but how do
you link in netfilter_queue in to a c++ program?
I've lightly modified the code in
libnetfilter_queue-<vers>/utils/nfqnl_test.c to build a test program.
When I try to compile the program i'm getting lots of linking errors
like this:
[jbhester@sidewinder src]$ make
cd .. && /bin/sh /home/jbhester/projects/midevil/missing --run
automake-1.9 --gnu src/Makefile
cd .. && /bin/sh ./config.status src/Makefile depfiles
config.status: creating src/Makefile
config.status: executing depfiles commands
g++ -g -O2 -o nfq_test nfq_test.o -lnetfilter_queue -lnfnetlink
nfq_test.o: In function
`main':/home/jbhester/projects/midevil/src/nfq_test.cpp:41: undefined
reference to `nfq_open()'
:/home/jbhester/projects/midevil/src/nfq_test.cpp:47: undefined
reference to `nfq_unbind_pf(nfq_handle*, unsigned short)'
:/home/jbhester/projects/midevil/src/nfq_test.cpp:52: undefined
reference to `nfq_bind_pf(nfq_handle*, unsigned short)'
:/home/jbhester/projects/midevil/src/nfq_test.cpp:57: undefined
reference to `nfq_create_queue(nfq_handle*, unsigned short, int
(*)(nfq_q_handle*, nfgenmsg*, nfq_data*, void*), void*)'
:/home/jbhester/projects/midevil/src/nfq_test.cpp:63: undefined
reference to `nfq_set_mode(nfq_q_handle*, unsigned char, unsigned int)'
:/home/jbhester/projects/midevil/src/nfq_test.cpp:68: undefined
reference to `nfq_nfnlh(nfq_handle*)'
:/home/jbhester/projects/midevil/src/nfq_test.cpp:69: undefined
reference to `nfnl_fd(nfnl_handle*)'
:/home/jbhester/projects/midevil/src/nfq_test.cpp:73: undefined
reference to `nfq_handle_packet(nfq_handle*, char*, int)'
:/home/jbhester/projects/midevil/src/nfq_test.cpp:77: undefined
reference to `nfq_destroy_queue(nfq_q_handle*)'
:/home/jbhester/projects/midevil/src/nfq_test.cpp:80: undefined
reference to `nfq_close(nfq_handle*)'
nfq_test.o: In function
`process':/home/jbhester/projects/midevil/src/nfq_test.cpp:19: undefined
reference to `nfq_get_msg_packet_hdr(nfq_data*)'
:/home/jbhester/projects/midevil/src/nfq_test.cpp:24: undefined
reference to `nfq_get_payload(nfq_data*, char**)'
:/home/jbhester/projects/midevil/src/nfq_test.cpp:28: undefined
reference to `nfq_set_verdict(nfq_q_handle*, unsigned int, unsigned int,
unsigned int, unsigned char*)'
collect2: ld returned 1 exit status
make: *** [nfq_test] Error 1
I've tried lots of things like adding "nfq_test_LDADD =
/usr/local/lib/libnetfilter_queue.[a|so]", and using the dynamic linking
as a dso object, but nothing is working.
Thanks ahead of time for the help.
Jay
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: c++ linking problems
2006-04-12 21:03 c++ linking problems Jay Hester
@ 2006-04-12 21:23 ` Julien VALIENTE
2006-04-13 6:44 ` Martijn Lievaart
1 sibling, 0 replies; 3+ messages in thread
From: Julien VALIENTE @ 2006-04-12 21:23 UTC (permalink / raw)
To: jay.hester, netfilter-devel
Hi,
I met this kind of problem. I solved it with the use of a c++ 'extern C'
around my include (tested with iptables-1.2.6a):
extern "C" {
#include <linux/netfilter.h>
#include <libipq.h>
}
Regards,
J. Valiente
> -----Message d'origine-----
> De : netfilter-devel-bounces@lists.netfilter.org
> [mailto:netfilter-devel-bounces@lists.netfilter.org]De la part de Jay
> Hester
> Envoyé : mercredi 12 avril 2006 23:03
> À : netfilter-devel@lists.netfilter.org
> Objet : c++ linking problems
>
>
> Hello,
> This is probably something easy that i'm overlooking, but how do
> you link in netfilter_queue in to a c++ program?
>
> I've lightly modified the code in
> libnetfilter_queue-<vers>/utils/nfqnl_test.c to build a test program.
> When I try to compile the program i'm getting lots of linking errors
> like this:
>
> [jbhester@sidewinder src]$ make
> cd .. && /bin/sh /home/jbhester/projects/midevil/missing --run
> automake-1.9 --gnu src/Makefile
> cd .. && /bin/sh ./config.status src/Makefile depfiles
> config.status: creating src/Makefile
> config.status: executing depfiles commands
> g++ -g -O2 -o nfq_test nfq_test.o -lnetfilter_queue -lnfnetlink
> nfq_test.o: In function
> `main':/home/jbhester/projects/midevil/src/nfq_test.cpp:41: undefined
> reference to `nfq_open()'
> :/home/jbhester/projects/midevil/src/nfq_test.cpp:47: undefined
> reference to `nfq_unbind_pf(nfq_handle*, unsigned short)'
> :/home/jbhester/projects/midevil/src/nfq_test.cpp:52: undefined
> reference to `nfq_bind_pf(nfq_handle*, unsigned short)'
> :/home/jbhester/projects/midevil/src/nfq_test.cpp:57: undefined
> reference to `nfq_create_queue(nfq_handle*, unsigned short, int
> (*)(nfq_q_handle*, nfgenmsg*, nfq_data*, void*), void*)'
> :/home/jbhester/projects/midevil/src/nfq_test.cpp:63: undefined
> reference to `nfq_set_mode(nfq_q_handle*, unsigned char, unsigned int)'
> :/home/jbhester/projects/midevil/src/nfq_test.cpp:68: undefined
> reference to `nfq_nfnlh(nfq_handle*)'
> :/home/jbhester/projects/midevil/src/nfq_test.cpp:69: undefined
> reference to `nfnl_fd(nfnl_handle*)'
> :/home/jbhester/projects/midevil/src/nfq_test.cpp:73: undefined
> reference to `nfq_handle_packet(nfq_handle*, char*, int)'
> :/home/jbhester/projects/midevil/src/nfq_test.cpp:77: undefined
> reference to `nfq_destroy_queue(nfq_q_handle*)'
> :/home/jbhester/projects/midevil/src/nfq_test.cpp:80: undefined
> reference to `nfq_close(nfq_handle*)'
> nfq_test.o: In function
> `process':/home/jbhester/projects/midevil/src/nfq_test.cpp:19: undefined
> reference to `nfq_get_msg_packet_hdr(nfq_data*)'
> :/home/jbhester/projects/midevil/src/nfq_test.cpp:24: undefined
> reference to `nfq_get_payload(nfq_data*, char**)'
> :/home/jbhester/projects/midevil/src/nfq_test.cpp:28: undefined
> reference to `nfq_set_verdict(nfq_q_handle*, unsigned int, unsigned int,
> unsigned int, unsigned char*)'
> collect2: ld returned 1 exit status
> make: *** [nfq_test] Error 1
>
>
> I've tried lots of things like adding "nfq_test_LDADD =
> /usr/local/lib/libnetfilter_queue.[a|so]", and using the dynamic linking
> as a dso object, but nothing is working.
>
> Thanks ahead of time for the help.
>
> Jay
>
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: c++ linking problems
2006-04-12 21:03 c++ linking problems Jay Hester
2006-04-12 21:23 ` Julien VALIENTE
@ 2006-04-13 6:44 ` Martijn Lievaart
1 sibling, 0 replies; 3+ messages in thread
From: Martijn Lievaart @ 2006-04-13 6:44 UTC (permalink / raw)
To: Jay Hester; +Cc: netfilter-devel
Jay Hester wrote:
> Hello,
> This is probably something easy that i'm overlooking, but how do
> you link in netfilter_queue in to a c++ program?
>
> I've lightly modified the code in
> libnetfilter_queue-<vers>/utils/nfqnl_test.c to build a test program.
> When I try to compile the program i'm getting lots of linking errors
> like this:
>
If you did:
extern C {
#include "netfilter_queue.h" // Or whatever C header
#include "another_C_header.h"
}
I think it should work.
M4
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-04-13 6:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-12 21:03 c++ linking problems Jay Hester
2006-04-12 21:23 ` Julien VALIENTE
2006-04-13 6:44 ` Martijn Lievaart
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.