Ich versuche, httpry Cross-kompilieren. Ich habe bereits libpcap kompiliert, aber aus irgendeinem Grund, wenn ich versuche, httpry zu kompilieren, scheint es nicht möglich zu sein, die Bibliothek libpcap zu finden.Problem beim Cross-Compile httpry
Ich habe das Makefile für httpry, um zu versuchen, Cross-Kompilierung zu ändern:
CC = /usr/bin/arm-linux-gnueabi-gcc
CCFLAGS = -Wall -O3 -funroll-loops -I/home/josh/workbench/libpcap-1.8.1
DEBUGFLAGS = -Wall -g -DDEBUG -I/home/josh/workbench/libpcap-1.8.1
Als ich Kompilation versuche ich die folgende Fehlermeldung erhalten:
[email protected]:~/workbench/httpry-0.1.8$ make
/usr/bin/arm-linux-gnueabi-gcc -Wall -O3 -funroll-loops -I/home/josh/workbench/libpcap-1.8.1 -o httpry httpry.c format.c methods.c utility.c rate.c -lpcap -lm -pthread
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: cannot find -lpcap
collect2: error: ld returned 1 exit status
make: *** [httpry] Error 1
So sicher es scheint dass LD die Bibliothek nicht findet. Aus Neugier habe ich versucht,
[email protected]:~/workbench/httpry-0.1.8$ ld -L/home/josh/workbench/libpcap-1.8.1 -lpcap
ld: skipping incompatible /home/josh/workbench/libpcap-1.8.1/libpcap.so when searching for -lpcap
ld: skipping incompatible /home/josh/workbench/libpcap-1.8.1/libpcap.a when searching for -lpcap
ld: cannot find -lpcap
wie die LD Scheint ich auf PATH haben gibt den gleichen Fehler, und es wird dadurch verursacht, dass libpcap kreuz zusammengestellt für eine andere Architektur zu meiner aktuellen Architektur. Aber meine Cross-Komplikation GCC nicht die PATH LD verwenden, verwendet er seine eigene Version, und wenn ich versuche, dass ich die folgenden
[email protected]:~/workbench/httpry-0.1.8$ /usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld -L/home/josh/workbench/libpcap-1.8.1 -lpcap
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: warning: cannot find entry symbol _start; defaulting to 00000000000081e4
erhalten, die irgendwie komisch, nicht wahr? Es scheint, als wenn ich ld laufen lasse, kann ich die Bibliothek ohne Probleme finden, aber wenn GCC es aus irgendeinem Grund ausführt, ist es das nicht.
Fehle ich etwas offensichtlich? Gibt es eine Möglichkeit, herauszufinden, mit welchen Argumenten gcc ld anspricht? Ich habe versucht, -v oder - ### zu verwenden, aber ich konnte nichts Nützliches in der Ausgabe finden.
Danke,
Josh