1
私はMsysを使用して、私がLinuxで書いたホームBrewカーネルを構築しています。 LinuxはELFをバイナリ形式で使用し、MsysはPEを使用します。マルチブート仕様を使ってGrubで起動できるようにするためのソース設定があります。ビルドの最後には、未定義のシンボルがいくつかあります:カーネルイメージをELFからPEに変換する
init.o:init.S:(.text+0x14): undefined reference to `edata'
main.o:main.c:(.text+0x121): undefined reference to `_alloca'
main.o:main.c:(.text+0x126): undefined reference to `__main'
../../lib\libkern.a(mem.o):mem.c:(.text+0x242): undefined reference to `_end'
../../lib\libkern.a(mem.o):mem.c:(.text+0x323): undefined reference to `_end'
これらはELF指向のシンボルのようです。 PEの世界でどのように対処すべきか、誰かが私に助言できるならば。同等のものがあれば、それは私を助けてくれるでしょう!
いいえ、私はカーネルをコンパイルしようとしています。私はelfであるlinuxの下でコンパイルしていますが、今はpeであるmsysでコンパイルを開始したいと考えています。 –
私はあなたがカーネルをコンパイルしているわけではありませんでしたが、コンパイラが実行しているプラットフォームとは異なるプラットフォームでコンパイルすると、そのターゲットプラットフォーム(あなたのケースではMysys)のクロスコンパイラが必要です。 – lothar