如何将 LDC(D 编译器)与 Code::Blocks 一起使用?具体来说,我该如何使用链接器?

How do I use LDC (D Compiler) with Code::Blocks? Specifically, how do I use the linker?

我已经将 CodeBlocks 与 Digital Mars D 编译器和 LLVM Clang 编译器一起使用了一段时间,没有任何问题。现在我需要使用 LDC D 编译器,但在调用链接器时遇到问题。

我得到以下输出:

-------------- Build: Debug in test (compiler: LLVM D Compiler)---------------

ldc2.exe  -g    -I"C:\Program Files\LDC\ldc2-1.13.0-windows-x64\bin" -c hello.d -of=obj\Debug\hello.o
ldc2.exe -L-L"C:\Program Files\LDC\ldc2-1.13.0-windows-x64\lib" -of=bin\Debug\test.exe obj\Debug\hello.o   
Error: unrecognized file extension o
Process terminated with status 1 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))

编译步骤似乎工作正常,但将 ldc2.exe 指定为链接器显然失败了。

同样,在 CodeBlocks 的链接器规范中使用 ldmd2.exelld-link.exe 会产生类似的错误。

有什么建议吗?

看起来 Code::Blocks 正在对 Windows 上的目标文件使用 .o 扩展名,而编译器前端中的链接器驱动程序可能期望目标文件具有 [=11] =] 扩展名,在 Windows.

上更常见

我不熟悉 Code::Blocks 或它如何与 D 编译器交互,但您可以尝试检查它是否有一个设置来控制用于目标文件的扩展名。这可能是在 Code::Blocks.

中负责构建 D 编译器命令行的任何代码中的错误(或者,简单地说,缺少 Windows 支持)