我正在使用Visual Studio 2012和Zxing c ++核心来构建Windows运行时组件。 我在项目中包含了我的c ++文件。
编译时,我收到以下错误:
Error 32 error LNK2005: "public: static unsigned int const
zxing::DecodeHints::CHARACTER_SET" (?CHARACTER_SET@DecodeHints@zxing@@2IB)
already defined in MyObject.obj
我在Google上发现了一个帖子(https://groups.google.com/forum/#!topic/zxing/U5dLnFjsDwQ),但这并没有解决我的问题。
有什么想法吗?
答案 0 :(得分:3)
问题已经解决(暂时)。 CHARACTER_SET在.h文件中实例化,而不是在cpp中实例化。由于我不知道的原因,Visual编译器不允许这样做,而GCC没有问题。
旧代码:
DecodeHints.h:
static const DecodeHintType CHARACTER_SET = 1 << 30;
DecodeHints.cpp:
const DecodeHintType DecodeHints::CHARACTER_SET;
已替换为:
DecodeHints.h:
static const DecodeHintType CHARACTER_SET;
DecodeHints.cpp:
const DecodeHintType DecodeHints::CHARACTER_SET = 1 << 30;