Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 64 位机器上用 DMD 编译程序的最佳方法是什么?它不需要编译为 64 位代码。我知道 GDC,但也想与 D2 合作。还有 chroot,但我希望有一个更简单的方法。
实际问题不在于编译,而在于链接。DMD 调用 GCC 以执行与系统库的链接。我可以让 DMD 拥有针对 32 位库的 GCC 链接吗?或者我将如何手动完成?
我已经安装了 ia32 库,这就是我可以运行 DMD 的原因。
'-m32'要求 GCC 通过传递它的标志来执行 32 位链接。
'-m32'
似乎DMD没有调用gcc来执行链接,而是ld直接调用。等效的ld开关是'-melf_i386',显然将该DMD选项传递给链接器的方法是使用'-L-melf_i386'标志。
DMD
gcc
ld
'-melf_i386'
'-L-melf_i386'
请注意,许多系统将运行时库和开发库分开。默认情况下几乎总是安装 32 位运行时包,但可能不会安装 32 位开发包。
您需要开发32 位软件包来构建 32 位程序。32 位DMD可以运行的事实本身并不能证明您拥有构建 32 位程序所需的所有 32 位库。