在64位Linux上使用DMD进行编译或使用32位目标文件进行链接

he_*_*eat 2 64-bit linker 32-bit d dmd

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

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

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

Emp*_*ian 5

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

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

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

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