Использование DMD в два отдельных шага: Связывание 64-разрядной версии (Linux)

Я работаю на 64-битной Ubuntu и пытаюсь заставить DMD v2.052 работать с Code::Blocks. Проблема в том, что Code::Blocks выполняет компиляцию и компоновку в два отдельных шага, и я не могу обойти это. Мои флаги компилятора (для этого проекта) — -m64, а все флаги компоновщика — те, что указаны в dmd.conf. Однако я получаю ошибки, когда пытаюсь это сделать, например


Linking console executable: bin/Debug/Gossamer
/usr/bin/ld: skipping incompatible /home/me/devl/sfml2/bindings/d/lib/libdsfml-system.a when searching for -ldsfml-system
/usr/bin/ld: cannot find -ldsfml-system
/usr/bin/ld: skipping incompatible /home/me/devl/sfml2/bindings/d/lib/libdsfml-graphics.a when searching for -ldsfml-graphics
/usr/bin/ld: cannot find -ldsfml-graphics
/usr/bin/ld: skipping incompatible /home/me/devl/sfml2/bindings/d/lib/libdsfml-audio.a when searching for -ldsfml-audio
/usr/bin/ld: cannot find -ldsfml-audio
/usr/bin/ld: skipping incompatible /home/me/devl/sfml2/bindings/d/lib/libdsfml-window.a when searching for -ldsfml-window
/usr/bin/ld: cannot find -ldsfml-window
collect2: ld returned 1 exit status

Я сам скомпилировал библиотеки DSFML, используя dmd -m64 -lib [library source code files], и там это было не за два шага, так что я знаю, что они в порядке. Кажется, ld их по какой-то причине не любит. Кто-нибудь может помочь?


person bfops    schedule 19.03.2011    source источник
comment
Работают ли эти библиотеки, если вы скомпилируете тестовое приложение вручную?   -  person Trass3r    schedule 20.03.2011
comment
Я не смог заставить библиотеки работать ни с чем.   -  person bfops    schedule 21.03.2011


Ответы (1)


Попробуйте выполнить компиляцию из командной строки, используя только DMD. Если это сработает, я думаю, что есть флаг, который заставит DMD напечатать командную строку для команды ссылки. Из этого вы должны быть в состоянии сказать, что вам нужно, чтобы Code::Blocks делал по-другому.

person BCS    schedule 20.03.2011
comment
Ага; Мне не хватало некоторых важных флагов компоновщика (самое главное -m elf_x86_64). - person bfops; 21.03.2011