イカクロス編集

イカクロス編集

私はARM Cortex A8(Linux)でSquid 3.5.7をクロスコンパイルしようとしました。
ダウンロードしましたhttp://www.squid-cache.org/Versions/v3/3.5/
私はarm-linux-gnueabi-gccとarm-linux-gnueabi-g ++を持っています。

tar -zxvf squid-3.5.7.tar.gz
cd squid-3.5.7
./configure --prefix=/usr/local/squid

./configure --prefix=/usr/local/squid の後、次の Makefile があります。http://wklej.se/makefile

make all
make install

次に、/usr/local/squid および ~/squid-3.5.7 フォルダを SD カードにコピーしました。
ARMを使用してボードのSDカードで./squid -zを開こうとすると問題が発生します。

root@am335x:/# ls
bin       etc       lib       mnt       srv       usr
boot      findHelp  linuxrc   proc      sys       var
dev       home      media     sbin      tmp
root@am335x:/media/mmcblk0/squid/sbin# ls
squid
root@am335x:/media/mmcblk0/squid/sbin# ./squid -z
./squid: line 20: syntax error: ")" unexpected
root@am335x:/media/mmcblk0/squid/sbin# ./squid
./squid: line 20: syntax error: ")" unexpected
root@am335x:/media/mmcblk0/squid/sbin#

どうすればいいかわかりません:/

答え1

実際にクロスコンパイルするわけではありません。クロスコンパイルするには、ターゲット./configureアーキテクチャを知る必要があります。

./configure --prefix=/usr/local --host=arm-linux-gnueabi

次に、使用されたMakefileとARMデバイスに適したarm-linux-gnueabi-gcc結果バイナリをインポートする必要があります。squid(もちろん、必要なライブラリがすべてあるとします。)

答え2

設定.acファイルを手動で編集し、原子セクションを見つけてその行を置き換えることができます。

AC_RUN_IFELSE([AC_LANG_PROGRAM([[

そして

AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[

その後、bootstrap.shを実行して構成スクリプトを再生成する必要があります。

これにより構成できますが、ツールチェーンが実際に__sync_xxx呼び出しをサポートしていない可能性があるため、コンパイル/リンクが失敗する可能性があります。私の場合、libatomic.soにこれらの呼び出しは含まれていません。その後、原子チェックに常に「いいえ」と応答するように構成スクリプトを手動で編集する必要がありました。

squid_cv_gnu_atomics=yes

到着

squid_cv_gnu_atomics=no

関連情報