我在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
如何解决此错误?