我正在使用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)上找到了一个线程,但这不能解决我的问题。

任何的想法 ?

最佳答案

该问题已解决(目前)。 CHARACTER_SET是在.h文件而不是cpp中实例化的。由于我不知道的原因,尽管GCC没问题,但Visual编译器不允许这样做。

旧代码:

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;

08-16 10:29