Использование DMD в два этапа: 64-битное соединение (Linux) - PullRequest
2 голосов
/ 19 марта 2011

Я работаю на 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], и там не было двух шагов, поэтому я знаю, что они в порядке. Кажется, я почему-то их не люблю. Может кто-нибудь помочь?

1 Ответ

2 голосов
/ 20 марта 2011

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

...