過去 3 日間、Win7 32 ビット マシンで仮想 Ubuntu (12.04) と CodeSourcery Sourcery G++ ARM ツールチェーンを使用して、TechNexion Blizzard ボード (不明なバージョンの Angstrom を実行) 用に Mono 2.11.4 をクロスコンパイルしようとしてきました。 、しかし、ほとんど/まったく成功していません。Web 上のすべてのチュートリアルに従いましたが、うまくいきません。
CodeSourcery Sourcery G++ ツールチェーンと Scratchbox2 (最新の git ソースからコンパイル) がインストールされ、動作しています。Scratchbox2はそれを使用してセットアップしました
sb2-init armv7 /home/dev/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc
正しいディレクトリ (~/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/libc) にある間。
シンプルな「Hello world」(cpp) をコンパイルし、コンパイルしてボード上で実行できます。Ubuntu の場合:
file hello
hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
Mono 2.11.4 のソースをダウンロードし、指示の 1 つに従いました。最初の部分 (ネイティブ マシン上) は正常に動作し、エラーは発生しません。ただし、2 番目の部分 (ARM 用にコンパイル) を実行すると、./configure は期待どおりに動作しますが、make は " ../lib/mini[some_file ] is incompatible with arm output" で失敗します。これらのファイルのファイルは、それらが確かに Intel 80386 実行可能ファイルであると述べていますが、その理由はわかりません。
そのため、次のステップはmake cleanを実行して手順を繰り返すことでしたが、それでも同じ結果が得られました。
次に、代わりに./configureを実行して、すべてを sb2 内に作成しようとしましたが、最初はうまくいくように見えました。しかし、その後、いくつかのエラーがポップアップし、ビルドが壊れました:
./.libs/libmini.a(libmini_la-mini-arm.o): In function `mono_arch_init':
/home/dev/source/host-mono/mono-2.11.4/mono/mini/mini-arm.c:689: undefined reference to `debugger_agent_single_step_from_context'
/home/dev/source/host-mono/mono-2.11.4/mono/mini/mini-arm.c:689: undefined reference to `debugger_agent_breakpoint_from_context'
/home/dev/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ld: .libs/libmono-2.0.so.1.0.0: hidden symbol `debugger_agent_single_step_from_context' isn't defined
/home/dev/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ld: final link failed: Nonrepresentable section on output
私が間違っていることについてのアイデア、または見逃した可能性のあるチュートリアルに関するヒントはありますか?
//アンダース