我正在使用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;