QRCodeSignature类不允许记录语句

QRCodeSignature class does not allow logging statements

本文关键字:语句 记录 不允许 QRCodeSignature      更新时间:2023-10-16

我有一个QRCode Signature类,我想放入日志记录语句,我从构造函数部分开始,如下所示:

QRCodeSignature::QRCodeSignature(std::vector<WacomType::PEN>* theSigpoints, int theInterval, int theVersion) : sigpoints(theSigpoints), interval(theInterval), version(theVersion) {
Logging::log(QRCodeSignature::logger, Logging::Entry, QRCodeSignature::CLASSNAME, "QRCodeSignature");

我在QRCodeSignature.cpp中有以下内容,包括

  #include "QRCodeSignature.h"
  #include <iostream>
  #include <cstdlib>
  #include <stdio.h>
  #include <stdlib.h>
  #include <math.h>

在QRCodeSignature.h中,我得到了以下类作为QRCodeSignature

  a constructor
  a virtual destructor
  private:
  static const std::string CLASSNAME;
  static Logging::Logger* logger;

在QRCodeSignature.cpp中,我有

 const std::string CLASSNAME = "QRCodeSignature";
 Logging::logger* QRCodeSignature::logger = NULL;

当我建立这个项目时的错误〔发布〕

 build/Release/MinGW_1-Windows/QRCodeSignature.o: In function `QRCodeSignature':
 C:reposimpressiontrunkProsenseSign/QRCodeSignature.cpp:13: undefined reference to `QRCodeSignature::CLASSNAME'
 collect2: ld returned 1 exit status
 make[2]: *** [dist/Release/MinGW_1-Windows/impression.api] Error 1
 make[1]: *** [.build-conf] Error 2
 make: *** [.build-impl] Error 2

您应该使用

const std::string QRCodeSignature::CLASSNAME = "QRCodeSignature";

而不是

const std::string CLASSNAME = "QRCodeSignature";

因为第二个不是类的CCD_ 1的初始化。