私はhttpryをクロスコンパイルしようとしています。私はすでにlibpcapをクロスコンパイルしていますが、何らかの理由でhttpryをコンパイルしようとすると、libpcapライブラリを見つけることができないようです。httpryをクロスコンパイルしようとする問題
私はクロスコンパイルを試みるためにhttpryのためのMakefileを修正するために持っていた:私は、コンパイルをしようとすると
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
私は次のエラーを取得する:
[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
だから、それは確かに見えますそのLDはライブラリを見つけることができません。好奇心から、私は
[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
は私がPATHに持っているLDのように思える同じエラーを与えてみました、とのlibpcapはクロスコンパイル私の現在のアーキテクチャとは異なるアーキテクチャのためですので、それが原因です。しかし、私のクロス合併症GCCは、それが独自のバージョンを使用して、PATHのLDを使用していない、と私は私が右、ちょっと奇妙だ次
[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
を得ることをしようとすると?私はldを実行したときに問題なくライブラリを見つけることができるようですが、何らかの理由でGCCを実行するとそうではありません。
明らかなものがありませんか? gccがldをどのような引数で呼び出すのかを知る方法はありますか? -vや - ###を使ってみましたが、出力に役立つものは何も見つかりませんでした。 LDは、右のディレクトリに見ていなかったよう
おかげで、
ジョシュ