【问题标题】:Using DMD in two separate steps: Linking 64-bit (Linux)在两个单独的步骤中使用 DMD:链接 64 位 (Linux)
【发布时间】:2011-03-19 14:17:09
【问题描述】:

我在 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 似乎不喜欢他们。有人可以帮忙吗?

【问题讨论】:

  • 如果您手动编译测试应用程序,这些库是否有效?
  • 我无法让这些库使用任何东西。

标签: linux ubuntu 64-bit d


【解决方案1】:

尝试仅使用 DMD 从命令行进行编译。如果可行,我认为有一个标志会导致 DMD 打印链接命令的命令行。从那你应该能够知道你需要 Code::Blocks 做不同的事情。

【讨论】:

  • 是的;我错过了一些关键的链接器标志(最重要的是 -m elf_x86_64)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
  • 2015-02-22
  • 1970-01-01
  • 2017-06-05
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多