如果依赖项具有另一个需要与静态库链接的依赖项,则无法链接

时间:2019-08-18 18:04:42

标签: linker static-libraries d

我有一个依赖于另一个库(qui)的库(termbox-d)。并且termbox-d与静态库libtermbox.a链接。

注意:我链接到的termbox-d有一些错误,我已在fork中修复了这些错误,但请求请求尚未合并。

这就是事情搞砸了:
如果我将qui编译为库,它将进行编译。指示termbox-dlibtermbox.a链接。

如果我用qui编译dub build --comfig=demo,它将以可执行文件的形式将其编译为具有qui库且使用termbox-d的主库。这个构建并运行良好。表明它仍然可以正常运行。

但是,如果我创建另一个依赖于qui的程序包并进行构建,则它无法与libtermbox.a链接。我收到如下错误:
source/termbox/package.d:210: undefined reference to tb_peek_event' So now it failed to link with libtermbox.a`

为什么会发生这种情况,以及如何使其起作用?

1 个答案:

答案 0 :(得分:1)

由于在chat.freenode.net上的IRC通道#d上显示了字母,我发现了这个问题:
而不是添加
"sourceFiles" : ["libtermbox.a"]
qui的{​​{1}}上,我不得不添加
dub.json
现在就可以了。

相关问题