Как использовать 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.