我正在使用 msvc2010 将 dcmtk 3.6.3 构建到单个 dll 中,并使用 lib 链接到我的程序,并且库中定义的全局变量都报告未解析的外部符号。我使用 dumpbin 工具检查了 dll 和 lib 文件,发现这些全局变量实际上是导出的。导出的函数可以链接。
任何帮助表示赞赏。谢谢
这是 dcmtk.lib 文件中一个变量的转储文件
?EC_Normal@@3UOFConditionConst@@B (struct OFConditionConst const EC_Normal)
这是 dcmtk.dll 文件中一个变量的转储文件
6913 1B00 008F31A0 ?EC_Normal@@3UOFConditionConst@@B
这是 msvs2010 错误:
error LNK2001: unresolved external symbol "struct OFConditionConst const EC_Normal" (?EC_Normal@@3UOFConditionConst@@B)
在库中,.h 文件是:
extern DCMTK_OFSTD_EXPORT const OFConditionConst EC_Normal;
#define makeOFConditionConst(name, module, code, status, text) \
const OFConditionConst name = { (module), (code), (status), (text) }
在 .cc 文件中是:
makeOFConditionConst(EC_Normal, 0, 0, OF_ok, "Normal");