如何在Ubuntu上使用带有D2的DSFML2解决链接器错误?

| 我正在运行带有DMDv2.052的64位Ubuntu Linux,试图使应用程序与DSFML2一起使用,但是我一直遇到链接器错误。 我使用共享库和发行版构建了SFML和CSFML库,并安装了它们,然后构建了DSFML绑定,如下所示:
me@lappy486:~/devl/sfml2/bindings/d/import/dsfml/system$ dmd -m64 -lib *.d -of../../../lib/libdsfml-system.a 
me@lappy486:~/devl/sfml2/bindings/d/import/dsfml/system$ cd ../window 
me@lappy486:~/devl/sfml2/bindings/d/import/dsfml/window$ dmd -m64 -lib *.d -of../../../lib/libdsfml-window.a 
me@lappy486:~/devl/sfml2/bindings/d/import/dsfml/window$ cd ../graphics 
me@lappy486:~/devl/sfml2/bindings/d/import/dsfml/graphics$ dmd -m64 -lib *.d -of../../../lib/libdsfml-graphics.a 
me@lappy486:~/devl/sfml2/bindings/d/import/dsfml/graphics$ cd ../audio 
me@lappy486:~/devl/sfml2/bindings/d/import/dsfml/audio$ dmd -m64 -lib *.d -of../../../lib/libdsfml-audio.a 
尝试构建使用它们的项目时,出现以下错误:
me@lappy486:~/devl/d/Gossamer$ dmd -m64 *.d game/*.d graphics/*.d -L\"-L/home/me/devl/sfml2/bindings/d/lib -ldsfml-system -ldsfml-window -ldsfml-graphics -ldsfml-audio\" 
collision.o:(.data+0xab0): undefined reference to `_D5dsfml8graphics5color12__ModuleInfoZ\' 
collision.o:(.data+0xb18): undefined reference to `_D5dsfml6system9exception16LoadingException7__ClassZ\' 
collision.o:(.data+0xbe0): undefined reference to `_D5dsfml8graphics3all12__ModuleInfoZ\' 
collision.o:(.data+0xd38): undefined reference to `_D5dsfml8graphics3all12__ModuleInfoZ\' 
collision.o:(.data+0xd40): undefined reference to `_D5dsfml6window3all12__ModuleInfoZ\' 
collision.o:(.data+0xdd8): undefined reference to `_D5dsfml6system9exception16LoadingException7__ClassZ\' 
collision.o:(.data+0xf40): undefined reference to `_D5dsfml8graphics3all12__ModuleInfoZ\' 
collision.o: In function `_D8graphics5image5Image6__ctorMFAyaZC8graphics5image5Image\': 
graphics/text.d:(.text._D8graphics5image5Image6__ctorMFAyaZC8graphics5image5Image+0x17): undefined reference to `_D5dsfml8graphics6sprite6Sprite7__ClassZ\' 
graphics/text.d:(.text._D8graphics5image5Image6__ctorMFAyaZC8graphics5image5Image+0x2a): undefined reference to `_D5dsfml8graphics5image5Image7__ClassZ\' 
graphics/text.d:(.text._D8graphics5image5Image6__ctorMFAyaZC8graphics5image5Image+0x67): undefined reference to `_D5dsfml8graphics5image5Image6__ctorMFAyaZC5dsfml8graphics5image5Image\' 
graphics/text.d:(.text._D8graphics5image5Image6__ctorMFAyaZC8graphics5image5Image+0xa3): undefined reference to `_D5dsfml8graphics5color4RGBA5WHITEyS5dsfml8graphics5color4RGBA\' 
graphics/text.d:(.text._D8graphics5image5Image6__ctorMFAyaZC8graphics5image5Image+0xac): undefined reference to `_D5dsfml8graphics6sprite6Sprite6__ctorMFC5dsfml8graphics5image5ImagefffffS5dsfml8graphics5color4RGBAZC5dsfml8graphics6sprite6Sprite\' 
collision.o: In function `_D8graphics6screen6Screen5clearMFZv\': 
graphics/text.d:(.text._D8graphics6screen6Screen5clearMFZv+0xa): undefined reference to `_D5dsfml8graphics5color4RGBA5BLACKyS5dsfml8graphics5color4RGBA\' 
collision.o: In function `_D8graphics6screen6Screen6__ctorMFAyakkZC8graphics6screen6Screen\': 
graphics/text.d:(.text._D8graphics6screen6Screen6__ctorMFAyakkZC8graphics6screen6Screen+0x24): undefined reference to `_D5dsfml8graphics12renderwindow12RenderWindow7__ClassZ\' 
graphics/text.d:(.text._D8graphics6screen6Screen6__ctorMFAyakkZC8graphics6screen6Screen+0x73): undefined reference to `_D5dsfml8graphics12renderwindow12RenderWindow6__ctorMFS5dsfml6window9videomode9VideoModeAyaE5dsfml6window6window5StyleS5dsfml6window6window15ContextSettingsZC5dsfml8graphics12renderwindow12RenderWindow\'
collision.o: In function `_D8graphics4text4Font6__ctorMFAyaZC8graphics4text4Font\': 
graphics/text.d:(.text._D8graphics4text4Font6__ctorMFAyaZC8graphics4text4Font+0x17): undefined reference to `_D5dsfml8graphics4font4Font7__ClassZ\' 
graphics/text.d:(.text._D8graphics4text4Font6__ctorMFAyaZC8graphics4text4Font+0x54): undefined reference to `_D5dsfml8graphics4font4Font6__ctorMFAyaZC5dsfml8graphics4font4Font\' 
collision.o: In function `_D8graphics4text4Text6__ctorMFC8graphics4text4FontAyakS5dsfml8graphics5color4RGBAZC8graphics4text4Text\': 
graphics/text.d:(.text._D8graphics4text4Text6__ctorMFC8graphics4text4FontAyakS5dsfml8graphics5color4RGBAZC8graphics4text4Text+0x19): undefined reference to `_D5dsfml8graphics4text4Text7__ClassZ\' 
graphics/text.d:(.text._D8graphics4text4Text6__ctorMFC8graphics4text4FontAyakS5dsfml8graphics5color4RGBAZC8graphics4text4Text+0x3b): undefined reference to `_D5dsfml8graphics4text4Text6__ctorMFAyaC5dsfml8graphics4font4FontkZC5dsfml8graphics4text4Text\' 
collect2: ld returned 1 exit status 
--- errorlevel 1 
有人可以帮忙吗?我还无法使其正常工作。     
已邀请:
我不知道出了什么问题,但首先要消除所有复杂的问题: 在D中使用
.so
是...“有问题”,如果可能,请使用静态链接。 尝试以32位模式构建它(我听说上次仍然是64位alpha) 尝试使用相同的lib设置构建一个hello world应用程序。 不要执行来自DMD的链接,请通过
ld
明确地进行链接。 (编译已经在详细模式下运行的内容,以获取所需命令行的起点。)     

要回复问题请先登录注册