2017-03-14 29 views
0

私は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は、右のディレクトリに見ていなかったよう

おかげで、

ジョシュ

答えて

0

は思えます。私は-Iはそれがなかったことを確認してくださいだろうと思ったが、それは-Lがあまりにも必要だっ判明:

CC    = /usr/bin/arm-linux-gnueabi-gcc 
CCFLAGS   = -Wall -O3 -funroll-loops -I/home/josh/workbench/libpcap-1.8.1 -L/home/josh/workbench/libpcap-1.8.1 
DEBUGFLAGS  = -Wall -g -DDEBUG -I/home/josh/workbench/libpcap-1.8.1 -L/home/josh/workbench/libpcap-1.8.1 

私はこれが事実であると私は説明をapprecateたい理由は全くわかりません。私は過去にはいつも私のために十分でした。

関連する問題