ntop / PF_RING

High-speed packet processing framework
http://www.ntop.org
GNU Lesser General Public License v2.1
2.68k stars 352 forks source link

pf_ring ft doesn't link to nDPI #693

Closed annp1987 closed 3 years ago

annp1987 commented 3 years ago

Hi @cardigliano,

I have installed nDPI into /usr/local/lib/ndpi by compile from source code as below: ./autogen.sh ./configure --prefix=/usr/local make && make install && ldconfig

With latest source code of pf_ring, I install pf_ring ft lib as below: cd lib && ./configure --disable-ft-dl && make && make install && ldconfig then try to compile example_ft, I got error like below: make gcc -O2 -DHAVE_PF_RING -Wall -Wno-unused-function -Wno-format-truncation -Wno-address-of-packed-member -I../../kernel -I../lib -I../libpcap -Ithird-party../lib/pfring_config --include-D HAVE_PF_RING_FT -c ftflow.c -o ftflow.o gcc -O2 -DHAVE_PF_RING -Wall -Wno-unused-function -Wno-format-truncation -Wno-address-of-packed-member -I../../kernel -I../lib -I../libpcap -Ithird-party../lib/pfring_config --include-D HAVE_PF_RING_FT ftflow.o ../libpcap/libpcap.a ../lib/libpfring.a ../libpcap/libpcap.a ../lib/libpfring.a../lib/pfring_config --libs`../libpcap/pcap-config --additional-libs --static -lpthread -lrt -ldl -lnl-genl-3 -lnl-3 -lrt -lm -o ftflow ../lib/libpfring.a(pfring_ft_dpi.o): In function pfring_ft_dpi_alloc': pfring_ft_dpi.c:(.text+0x35): undefined reference tondpi_get_api_version' pfring_ft_dpi.c:(.text+0x42): undefined reference to ndpi_init_detection_module' pfring_ft_dpi.c:(.text+0xa0): undefined reference tondpi_set_protocol_detection_bitmask2' pfring_ft_dpi.c:(.text+0xa8): undefined reference to ndpi_finalize_initalization' pfring_ft_dpi.c:(.text+0xb9): undefined reference tondpi_revision' pfring_ft_dpi.c:(.text+0xc1): undefined reference to ndpi_get_api_version' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_giveup_and_guess': pfring_ft_dpi.c:(.text+0x133): undefined reference to ndpi_detection_giveup' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_ndpi_detection_process_packet': pfring_ft_dpi.c:(.text+0x181): undefined reference to ndpi_detection_process_packet' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_get_protocol_name_by_id': pfring_ft_dpi.c:(.text+0x1d6): undefined reference to ndpi_protocol2name' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_guess_undetected_protocol': pfring_ft_dpi.c:(.text+0x234): undefined reference to ndpi_guess_undetected_protocol' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_detection_giveup': pfring_ft_dpi.c:(.text+0x26f): undefined reference to ndpi_detection_giveup' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_free': pfring_ft_dpi.c:(.text+0x111): undefined reference to ndpi_exit_detection_module' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_ndpi_extra_dissection_possible': pfring_ft_dpi.c:(.text+0x191): undefined reference to ndpi_extra_dissection_possible' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_get_protocol_id_by_name': pfring_ft_dpi.c:(.text+0x1a1): undefined reference to ndpi_get_proto_by_name' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_detection_get_sizeof_ndpi_flow_struct': pfring_ft_dpi.c:(.text+0x201): undefined reference to ndpi_detection_get_sizeof_ndpi_flow_struct' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_detection_get_sizeof_ndpi_id_struct': pfring_ft_dpi.c:(.text+0x211): undefined reference to ndpi_detection_get_sizeof_ndpi_id_struct' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_free_flow': pfring_ft_dpi.c:(.text+0x241): undefined reference to ndpi_free_flow' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_check_flow_func': pfring_ft_dpi.c:(.text+0x251): undefined reference to ndpi_check_flow_func' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_network_ptree_match': pfring_ft_dpi.c:(.text+0x281): undefined reference to ndpi_network_ptree_match' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_guess_protocol_id': pfring_ft_dpi.c:(.text+0x2a3): undefined reference to ndpi_guess_protocol_id' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_get_num_supported_protocols': pfring_ft_dpi.c:(.text+0x2b1): undefined reference to ndpi_get_num_supported_protocols' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_load_protocols': pfring_ft_dpi.c:(.text+0x2c1): undefined reference to ndpi_load_protocols_file' ../lib/libpfring.a(pfring_ft_dpi.o): In functionpfring_ft_dpi_load_categories': pfring_ft_dpi.c:(.text+0x2d1): undefined reference to ndpi_load_categories_file' collect2: error: ld returned 1 exit status Makefile:63: recipe for target 'ftflow' failed make: *** [ftflow] Error 1

More information, I can compile and run example_ft successfully with older source code of PF_FING at commit: 8979395114b51059b7dfaae115c0f31cba56a271

Could you please give me some advice?

Thank you in advance,

cardigliano commented 3 years ago

@annp1987 why are you using --disable-ft-dl ?

annp1987 commented 3 years ago

@cardigliano : my application build on top of ndpi and pf_ring ft same as the issue: https://github.com/ntop/PF_RING/issues/441. Everything work fine after I update latest source code of pf_ring.

cardigliano commented 3 years ago

Can we close this issues then?

annp1987 commented 3 years ago

Sorry, I mean that everything work fine before I update latest source code of pf_ring.

cardigliano commented 3 years ago

@annp1987 please update to latest code from git and use ./configure --disable-ft-dl --enable-ndpi

annp1987 commented 3 years ago

It worked fined. Thank you so much.