Как использовать LDC (D-компилятор) с Code::Blocks? В частности, как я могу использовать компоновщик?

Я уже некоторое время без проблем использую 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 в качестве компоновщика явно не удается.

Точно так же, используя ldmd2.exe а также lld-link.exe в спецификации компоновщика CodeBlocks возникают подобные ошибки.

Какие-либо предложения?

1 ответ

Решение

Похоже, Code::Blocks использует .o расширение для объектных файлов в Windows, в то время как драйвер компоновщика в интерфейсе компилятора, вероятно, ожидает, что объектные файлы будут иметь .obj расширение, которое чаще встречается в Windows.

Я не знаком с Code::Blocks или с тем, как он взаимодействует с D-компиляторами, но вы можете попробовать проверить, имеет ли он параметр для управления тем, какое расширение используется для объектных файлов. Это может быть ошибкой (или просто отсутствием поддержки Windows) в любом коде, который отвечает за построение командных строк компилятора D в Code::Blocks.

Другие вопросы по тегам