1

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

任何想法 ?

4

1 回答 1

3

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

旧代码:

解码提示.h:

static const DecodeHintType CHARACTER_SET = 1 << 30;

解码提示.cpp:

const DecodeHintType DecodeHints::CHARACTER_SET;

已替换为:

解码提示.h:

static const DecodeHintType CHARACTER_SET;

解码提示.cpp:

const DecodeHintType DecodeHints::CHARACTER_SET = 1 << 30;
于 2013-08-13T13:26:05.913 回答