2

在 64 位机器上用 DMD 编译程序的最佳方法是什么?它不需要编译为 64 位代码。我知道 GDC,但也想与 D2 合作。还有 chroot,但我希望有一个更简单的方法。

实际问题不在于编译,而在于链接。DMD 调用 GCC 以执行与系统库的链接。我可以让 DMD 拥有针对 32 位库的 GCC 链接吗?或者我将如何手动完成?

我已经安装了 ia32 库,这就是我可以运行 DMD 的原因。

4

1 回答 1

5

'-m32'要求 GCC 通过传递它的标志来执行 32 位链接。

似乎DMD没有调用gcc来执行链接,而是ld直接调用。等效的ld开关是'-melf_i386',显然将该DMD选项传递给链接器的方法是使用'-L-melf_i386'标志。

请注意,许多系统将运行时库和开发库分开。默认情况下几乎总是安装 32 位运行时包,但可能不会安装 32 位开发包。

您需要开发32 位软件包来构建 32 位程序。32 位DMD可以运行的事实本身并不能证明您拥有构建 32 位程序所需的所有 32 位库。

于 2009-05-13T06:37:54.070 回答