3

nginx-1.0.11をクロスコンパイルする方法を知りたいです。

私はすでに:-with-ccオプションを試しましたが、エラーが発生します:Cコンパイラをチェックしています...見つかりましたが機能していません

./configure:エラー:Cコンパイラarm-linux-gccが見つかりません

--with-cc-optも機能していません。私も手動でコンパイラを変更しようとしました(Makefileを変更することによって)。

私はすでにarm-linux-gccをインストールしており、opensslで正常に動作しています(opensslのクロスコンパイルに成功しているため、arm-linuxコンパイラでは問題は発生しません)。

どんな助けでも大歓迎です..事前に感謝します。:)

4

5 に答える 5

1

簡単な答えはありません。nginxには、現在クロスコンパイルをサポートしていない独自の非autoconf構成システムがあります。

構成システムをハックするか回避するか、nginxがクロスコンパイルのサポートを追加するまで待ちます。

この問題が最近議論されたhttp://forum.nginx.org/read.php?29,220607を参照してください。

于 2012-01-31T22:15:56.227 に答える
1

QEMU - http://wiki.qemu.org/Main_Pageとlinaroの軽量イメージ- http://www.linaro.org/のセットアップを検討しましたか。私はこのアプローチをテストしていませんが、Pandaboard ARM v7a で nginx を正常にコンパイルして実行したことはわかります。

于 2012-05-05T00:37:55.073 に答える
1

ia32 Linux ホストに対して ./configure を実行し、(動作することを確認するために) ビルドし、1) すべてのオブジェクト ファイルを削除し、2) objs/Makefile を編集して CC の値を変更し、コンパイラのインクルード パスを追加し、リンカーのライブラリ パス 3) いくつかのヘッダー ファイルを /usr/include からローカル ディレクトリにコピーしました

/usr/include が検索パスにある場合、コンパイラのヘッダー ファイルの前に検索されるという問題があります。これは、x86 アセンブラー命令が htonl() の定義に取り込まれたときに問題になりました。

別の方法は、conf/cc/gcc をハックしてオプションを追加し、CROSS のシェル変数のサポートを含めてそこで構成を行うことです。私はまだそれをしていません。

于 2012-02-21T18:39:06.887 に答える