2009-04-20 10 views
5

私はMIPSのためにMonoを静的にクロスコンパイルしようとしています。私はMonoをコンパイルすることができますが、コンパイラに静的を指定しても、常に依存関係に動的にリンクされます。誰かがuClibcを使ってMIPS 64のMonoをクロスコンパイルしましたか?

私はテストプログラムを作成しました。私はツールチェーンを使用して静的にコンパイルし、ターゲットプラットフォーム上で実行できます。私は何かが欠落しているか、それが不可能かどうかはわかりません。 buildrootを使用してツールチェーンを構築しました。物事はもう少し明確にする

EDIT

、私はそれが依存関係だと静的にモノをコンパイルしたいと思います。モノが依存する依存関係は、GLib、pkg-config、およびgettextです。 GLibは直接の依存関係であり、GLibはpkg-configとgettextに依存していると思います。

私は環境変数を掲示し、必要に応じてコマンドを設定することができます。

答えて

1

私はこれを試してからしばらくしていましたが、私が学んだことを報告したいと思いました。 1つは、MIPSプロセッサは、私が最初にターゲットとしていた組み込みデバイスについて語ったように、32ビットではなく64ビットであることがわかった。第二に、私がこれに取り組んでいたとき、MonoはまだMIPS 64ビットをサポートしていませんでした。ちょっとした調査の結果、N-iXのグループがMonoを移植して、既に行われている32ビットポートに基づいてMIPS 64ビットアーキテクチャをサポートしていることがわかりました。 SiCortex, Inc.という会社の64ビットポートが完成し、N-iXがメインのMono開発トランクにパッチを適用しようとしていました。詳細はforum threadをご覧ください。私はテストを手伝ってほしいと述べたが、回答は得られなかった。

Monoを静的にコンパイルする限り、Monoはライブラリを一緒にリンクするためにlibtoolを使用することを学びました。私は静的にコンパイルする前に、このツールについてもっと知る必要があります。 MonoがまだMIPS 64ビットをサポートしていなかったことを知り、私はやめました。また、64ビットポートパッチがMonoに適用されたかどうかを確認する必要があります。

こちらがお役に立てば幸いです。

1

完全に静的にリンクされたモノを取得するには、静的ライブラリとして最初にすべての依存関係(およびそれらの依存関係を再帰的に)構築する必要があります。それでは、本当に静的なMonoを構築することができます。

+0

私はこれが答えかもしれないと恐れていました。 buildrootでは、モノに依存するパッケージをツールチェーンで構築することを選択しました。そのため、ツールチェーンのlibフォルダとbinフォルダにリンクされます。私はちょうど誰かが同じことを考えないでプロセスを通過する必要はありませんでした。私はそれを試して、ステップを報告します。 –

0

最近、Stackoverflowポッドキャストの1つで、Miguel氏はiPhoneにモノを移植したと言いました。 64ビットではありませんが、Monoには厄介なことができます。

+0

彼らがしたことは、.NETアプリケーションを静的にコンパイルすることでした。私が探しているものに近いが、それほどではない。私はMonoランタイムを静的にコンパイルしようとしています。これにより、ランタイムが利用可能になるため、.NETアプリケーションを静的にコンパイルする必要がなくなります。 –