libnet /pcap einbinden

Hey,
versuche seit Stunden vergeblich libnet in mein Programm einzubinden. :(

Habe es mit Dev-Cpp sowie Code-Blocks ausprobiert.
Bei beiden kommt der gleiche Linker Error.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <libnet.h>

int main(int argc, char **argv)
{
libnet_t *l;            
char errbuf[LIBNET_ERRBUF_SIZE];  
char *device = NULL;

l = libnet_init (LIBNET_RAW4, device, errbuf);
}
Code:
../../../../Dev-Cpp/lib/libwpcap.a  //pcap
../../../../Dev-Cpp/lib/libpacket.a  //pcap
../../../../Dev-Cpp/lib/wpcap.lib  //pcap
../../../../Dev-Cpp/lib/Packet.lib  //pcap
../../../../Dev-Cpp/lib/libws2_32.a //std
../../../../Dev-Cpp/lib/libnet.a  //libnet
Code:
../../../../Dev-Cpp/include/libnet.h 
../../../../Dev-Cpp/include/libnet/in_systm.h 
../../../../Dev-Cpp/include/libnet/libnet-asn1.h 
../../../../Dev-Cpp/include/libnet/libnet-functions.h 
../../../../Dev-Cpp/include/libnet/libnet-headers.h 
../../../../Dev-Cpp/include/libnet/libnet-macros.h 
../../../../Dev-Cpp/include/libnet/libnet-structures.h 
../../../../Dev-Cpp/include/libnet/libnet-types.h

../../../../Dev-Cpp/include/pcap.h 
../../../../Dev-Cpp/include/pcap-stdinc.h 
../../../../Dev-Cpp/include/Win32-Extensions.h 
../../../../Dev-Cpp/include/stdint.h 
../../../../Dev-Cpp/include/pcap-namedb.h 
../../../../Dev-Cpp/include/Packet32.h 
../../../../Dev-Cpp/include/ip6_misc.h 
../../../../Dev-Cpp/include/bittypes.h 
../../../../Dev-Cpp/include/remote-ext.h 
../../../../Dev-Cpp/include/pcap-bpf.h
 
../../../../Dev-Cpp/include/pcap/bluetooth.h 
../../../../Dev-Cpp/include/pcap/bpf.h 
../../../../Dev-Cpp/include/pcap/namedb.h 
../../../../Dev-Cpp/include/pcap/pcap.h 
../../../../Dev-Cpp/include/pcap/sll.h 
../../../../Dev-Cpp/include/pcap/usb.h 
../../../../Dev-Cpp/include/pcap/vlan.h
Code:
Compiler: Default compiler
Building Makefile: "C:\Dokumente und Einstellungen\testuser1\Desktop\TEST\Makefile.win"
Führt  make... aus
make.exe -f "C:\Dokumente und Einstellungen\testuser1\Desktop\TEST\Makefile.win" all
gcc.exe -D__DEBUG__ -c main.c -o main.o -I"C:/Dev-Cpp/include"    -g3

gcc.exe -D__DEBUG__ main.o  -o "Projekt1.exe" -L"C:/Dev-Cpp/lib" ../../../../Dev-Cpp/lib/libwpcap.a ../../../../Dev-Cpp/lib/libpacket.a ../../../../Dev-Cpp/lib/wpcap.lib ../../../../Dev-Cpp/lib/Packet.lib ../../../../Dev-Cpp/lib/libws2_32.a ../../../../Dev-Cpp/lib/libwsock32.a ../../../../Dev-Cpp/lib/libnet.a  -g3 

/mingw/lib/crt2.o(.text+0x37):crt1.c: undefined reference to `__cpu_features_init'
../../../../Dev-Cpp/lib/libnet.a(libnet_init.o)(.text+0x22):libnet_init.c: undefined reference to `WSAStartup@8'

../../../../Dev-Cpp/lib/libnet.a(libnet_init.o)(.text+0x2d5):libnet_init.c: undefined reference to `closesocket@4'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x6d):libnet_link_win32.c: undefined reference to `PacketOpenAdapter'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0xdf):libnet_link_win32.c: undefined reference to `PacketSetBuff'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0xf4):libnet_link_win32.c: undefined reference to `PacketGetNetType'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x262):libnet_link_win32.c: undefined reference to `PacketSetHwFilter'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x270):libnet_link_win32.c: undefined reference to `PacketCloseAdapter'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x289):libnet_link_win32.c: undefined reference to `PacketAllocatePacket'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x2dc):libnet_link_win32.c: undefined reference to `PacketInitPacket'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x2f9):libnet_link_win32.c: undefined reference to `PacketSendPacket'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x30e):libnet_link_win32.c: undefined reference to `PacketFreePacket'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x46f):libnet_link_win32.c: undefined reference to `PacketRequest'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x56d):libnet_link_win32.c: undefined reference to `SendARP@16'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x597):libnet_link_win32.c: undefined reference to `GetAdaptersInfo@8'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x5c5):libnet_link_win32.c: undefined reference to `GetAdaptersInfo@8'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x5de):libnet_link_win32.c: undefined reference to `inet_addr@4'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x627):libnet_link_win32.c: undefined reference to `SendARP@16'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x6d6):libnet_link_win32.c: undefined reference to `GetIpNetTable@12'
../../../../Dev-Cpp/lib/libnet.a(libnet_link_win32.o)(.text+0x72b):libnet_link_win32.c: undefined reference to `GetIpNetTable@12'
../../../../Dev-Cpp/lib/libnet.a(libnet_if_addr.o)(.text+0xd2):libnet_if_addr.c: undefined reference to `pcap_findalldevs'
../../../../Dev-Cpp/lib/libnet.a(libnet_checksum.o)(.text+0x26b):libnet_checksum.c: undefined reference to `ntohs@4'
../../../../Dev-Cpp/lib/libnet.a(libnet_checksum.o)(.text+0x315):libnet_checksum.c: undefined reference to `ntohs@4'
../../../../Dev-Cpp/lib/libnet.a(libnet_checksum.o)(.text+0x3a4):libnet_checksum.c: undefined reference to `ntohs@4'
../../../../Dev-Cpp/lib/libnet.a(libnet_checksum.o)(.text+0x458):libnet_checksum.c: undefined reference to `ntohs@4'
../../../../Dev-Cpp/lib/libnet.a(libnet_resolve.o)(.text+0x44):libnet_resolve.c: undefined reference to `gethostbyaddr@12'
../../../../Dev-Cpp/lib/libnet.a(libnet_resolve.o)(.text+0x171):libnet_resolve.c: undefined reference to `gethostbyaddr@12'
../../../../Dev-Cpp/lib/libnet.a(libnet_resolve.o)(.text+0x216):libnet_resolve.c: undefined reference to `inet_addr@4'
../../../../Dev-Cpp/lib/libnet.a(libnet_resolve.o)(.text+0x233):libnet_resolve.c: undefined reference to `gethostbyname@4'
../../../../Dev-Cpp/lib/libnet.a(libnet_resolve.o)(.text+0x3cf):libnet_resolve.c: undefined reference to `ntohl@4'
../../../../Dev-Cpp/lib/libnet.a(libnet_resolve.o)(.text+0x40e):libnet_resolve.c: undefined reference to `gethostbyaddr@12'
../../../../Dev-Cpp/lib/libnet.a(libnet_resolve.o)(.text+0x5da):libnet_resolve.c: undefined reference to `PacketGetNetInfoEx'
collect2: ld returned 1 exit status

make.exe: *** [Projekt1.exe] Error 1

Ausführung beendet
Achja habe von pcap und libnet jeweils die binaries runtergeladen, weil mit der selbst mit MinGW kompilierte libnet.a überhaupt nicht geht. ( da ist schon libnet_t undeclared)

Die selbstkompilierte libnet.a war um ein vielfaches größer als die runtergeladene bin. Beim kompilieren kam auch kein Fehler also beim mingw32-make , mingw32-make install spuckte jedoch einen Fehler aus.

Hilfe :)

MFG
bl0xx
 
Dem Compiler werden die Parameter '-lnet -lpcap' nicht übergeben. Daher kann er es nicht korrekt linken.
 
wo kann ich die parameter für gcc bei Code::Blocks übergeben?

edit:\\ achso -inet -ipcap statt -lnet -lpcap gemeint ? das gibt jedenfalls keinen error wenn ichs unter compiler setting -> linker settings -> other linker settings eintrage

aber ändert nichts an der Fehlermeldung...

edit2:\\ mh

Code:
C:\Programme\CodeBlocks\MinGW\bin>"mingw32-gcc.exe" -lnet
c:/programme/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/b
in/ld.exe: cannot find -lnet
collect2: ld returned 1 exit status

C:\Programme\CodeBlocks\MinGW\bin>"mingw32-gcc.exe" -lcpac
c:/programme/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/b
in/ld.exe: cannot find -lcpac
collect2: ld returned 1 exit status

C:\Programme\CodeBlocks\MinGW\bin>"mingw32-gcc.exe" -lpcap
c:/programme/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/b
in/ld.exe: cannot find -lpcap
collect2: ld returned 1 exit status

C:\Programme\CodeBlocks\MinGW\bin>"mingw32-gcc.exe" -lpcapsd
c:/programme/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/b
in/ld.exe: cannot find -lpcapsd
collect2: ld returned 1 exit status

C:\Programme\CodeBlocks\MinGW\bin>"mingw32-gcc.exe" -inet
mingw32-gcc.exe: no input files

C:\Programme\CodeBlocks\MinGW\bin>"mingw32-gcc.exe" -ipcap
mingw32-gcc.exe: no input files

C:\Programme\CodeBlocks\MinGW\bin>"mingw32-gcc.exe" -ipcaptest
mingw32-gcc.exe: no input files
 
Zuletzt bearbeitet:
Nein, es muss schon ein kleines 'L' sein. Wenn der Compiler diese Flags nicht findet, ist ggf. der Library-Path nicht korrekt gesetzt. Wie man das allerdings unter Windows setzt, kann ich dir nicht sagen. Auf Unix-Systemen geht es über die Umgebungsvariable $LD_LIBRARY_PATH.
 
Zurück
Oben