【发布时间】:2011-05-21 04:41:27
【问题描述】:
我正在尝试在 Visual C++ 中构建一个解决方案,其中我有一个引用我创建的 DLL 项目的前端项目。在 DLL 项目中,我链接到具有静态对象和定义的静态库(我还没有编写)。一切正常,但我有链接问题。
我有几个问题。首先,我应该只为我在前端引用的未导出的对象获取未解析的符号,对吗?我希望 DLL 成为静态库的唯一接口,并且不直接在前端引用它的任何部分,但我从这个库中得到了许多未解析的符号。有些符号似乎是#included,并且至少有一些不是由 DLL 项目直接链接的。我怀疑它与静态库中的静态声明有关,但我该如何处理这些?
一些未解决的符号错误:
2>AnalysisVis.obj : error LNK2001: unresolved external symbol "public: __thiscall SharkException::SharkException(char const *,int,char const *)" (??0SharkException@@$$FQAE@PBDH0@Z)
2>AnalysisVis.obj : error LNK2001: unresolved external symbol "public: static class Bernoulli Rng::coinToss" (?coinToss@Rng@@2VBernoulli@@A)
2>AnalysisVis.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall ChromosomeT<bool>::operator<(class Chromosome const &)const " (??M?$ChromosomeT@_N@@$$FUBE_NABVChromosome@@@Z)
【问题讨论】:
-
使用 DLL 作为静态库的接口有什么意义?请解释!
-
DLL 不仅仅是静态库的接口,它有自己的功能,但它利用了静态库。
标签: c++ dll static-libraries