当前位置: 代码迷 >> QT开发 >> qt 一个变量宣言引用 undefined reference to
  详细解决方案

qt 一个变量宣言引用 undefined reference to

热度:55   发布时间:2016-04-25 04:11:49.0
qt 一个变量声明引用 undefined reference to
诸位老师好!
   有一个问题:IDE是qtCreator。 我定义了一个类LogUtil,头文件如下LogUtil.h。

#ifndef LOGUTIL_H
#define LOGUTIL_H
#include <QDir>
#include "QsLog.h"

class LogUtil: public QObject
{
    Q_OBJECT
    public:        
        static QString getCurrentLogName(){return currentLogFileName ;}
        static void setCurrentLogName(QString fileName);
        static void createLogFile(QString fileName);
        static int getLogSize(QString fileName);
        static void log(QString dateTime,QString eventStatus,QString logMsg,QString connectDevice,QString DeviceIp,QString remark);
        
    private:
        LogUtil(){}
        static QString currentLogFileName;
};

#endif // LOGUTIL_H


源文件LogUtil.cpp

   #include <QObject>
#include "LogUtil.h"
#include "QsLog.h"
#include "QsLogDest.h"

void LogUtil::setCurrentLogName(QString fileName)
{
    LogUtil::currentLogFileName = fileName ;
}

int LogUtil::getLogSize(QString fileName){
    int size = 0;
    QFile file(fileName);

    if (!file.open(QIODevice::ReadOnly))
    {
        return 1;
    }

    size = file.size();
    file.close();
    return size;
}

void LogUtil::createLogFile(QString fileName)
{
    QsLogging::Logger& logger = QsLogging::Logger::instance();
    logger.setLoggingLevel(QsLogging::TraceLevel);
    //const QString sLogPath(QDir(Settings::SavePath()).path()+"/log/"+fileName);
    QString dirPath = "e:/upload";
    const QString sLogPath(QDir(dirPath.append("/log/")).path()+fileName);
    QsLogging::DestinationPtr fileDestination( QsLogging::DestinationFactory::MakeFileDestination(sLogPath) );
    QsLogging::DestinationPtr debugDestination(QsLogging::DestinationFactory::MakeDebugOutputDestination() );
    logger.addDestination(debugDestination.get());
    logger.addDestination(fileDestination.get());

    QString currentFileName = "e:/upload";
    currentFileName.append("/log/").append(fileName);
    setCurrentLogName(currentFileName);
}

void LogUtil::log(QString dateTime, QString eventStatus, QString logMsg, QString connectDevice, QString DeviceIp, QString remark)
{
    QLOG_INFO()<<" dateTime:" +dateTime +" eventStatus: " +eventStatus+" LogMsg: "+logMsg+" connentDevice: "+connectDevice+" DeviceIp: "+DeviceIp+" remark:"+remark;
  相关解决方案