2

64ビットマシンでDMDを使用してプログラムをコンパイルするための最良の方法は何ですか?64ビットコードにコンパイルする必要はありません。GDCについては知っていますが、D2でも作業したいと思います。chrootもありますが、もっと簡単な方法を望んでいます。

実際の問題はコンパイルではなく、リンクです。DMDはGCCを呼び出して、システムライブラリとのリンクを実行します。DMDに32ビットライブラリに対するGCCリンクを持たせることはできますか?または、手動で行うにはどうすればよいですか?

すでにia32ライブラリがインストールされているため、DMDを実行できます。

4

1 に答える 1

5

'-m32'GCCにフラグを渡して32ビットリンクを実行するように依頼します。

リンクを実行するためにDMD呼び出すのではなく、直接呼び出すようです。同等のスイッチはであり、明らかにそのオプションをリンカに渡す方法はフラグを使用することです。gccldld'-melf_i386'DMD'-L-melf_i386'

多くのシステムはランタイムライブラリと開発ライブラリを分離していることに注意してください。ほとんどの場合、32ビットランタイムパッケージはデフォルトでインストールされますが、32ビット開発パッケージはインストールされない場合があります。

32ビットプログラムをビルドするには、32ビットパッケージを開発する必要があります。32ビットDMDを実行できるという事実自体は、32ビットプログラムを構築するために必要なすべての32ビットライブラリがあることを証明するものではありません。

于 2009-05-13T06:37:54.070 に答える