Zxing C ++出现LNK2005错误

时间:2013-08-13 11:40:22

标签: c++ visual-studio-2012 windows-phone-8 windows-runtime zxing

我正在使用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),但这并没有解决我的问题。

有什么想法吗?

1 个答案:

答案 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;