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

Я некоторое время без проблем использую 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 Ответ

0 голосов
/ 09 января 2019

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

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

...