All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.