LNK2019将静态成员与静态链接一起使用

时间:2018-06-26 16:07:24

标签: c++ visual-studio static-linking

我在Visual Studio 15中有3个项目。第一个(A)和第二个(B)-动态库,第三个(D)-exe,使用这两个库。任务是链接 第一个库是静态的。

我遇到的第一个问题是,如果我链接到两个D库,则A中的单调不再出现在单个副本中,而在B和D中出现在2个不同的副本中。我决定-删除链接来自A,位于D中,因为来自A的所有导出功能现在都位于B中。

第二个问题。在A中,具有以下形式的构造:

在标题中:

struct A_CLASS SomeClass {
  static const double someMember;
};

在cpp中:

const double SomeClass::someMember = 14;

A_CLASS是

#ifdef ( _BUILDA )
  #define A_CLASS         __declspec( dllexport )
#else
  #define A_CLASS         __declspec( dllimport )
#endif

如果我尝试在D中使用SomeClass :: someMember-我收到链接错误LNK2019。
dumpbin显示,在B.lib和B.dll中,存在类型构造?someMember@SomeClass@@2NA

如何解决此错误?

0 个答案:

没有答案