Здравствуйте, есть tempcore.h и tempcore.cpp, подключаю tempcore.h в нужный файл и пытаюсь использовать, но появляется ошибка undefined reference to 'tempCore::getCpuTemp()'
(он так про все методы этого класса) пробовал использовать так:
tempCore *tc;
tc = new tempCore;
tc->getCpuTemp();
tempCore tc;
tc.getCpuTemp();
Через двоеточие должно работать, тк другой класс сделан примено так же, но мне надо создать именно экземпляр класса, чтобы один раз при создании экземпляра он собрал всю необходимую информацию и сохранил в QMap. tempcore.h:
#include <QString>
#include <QMap>
#ifndef TEMPCORE_H
#define TEMPCORE_H
class tempCore
{
private:
QMap<QString, QString> data;
void writer(QString &str);
public:
tempCore();
QString getCpuTemp();
QString getGpuTemp();
};
#endif // TEMPCORE_H
tempcore.cpp:
#include "tempcore.h"
#include <QStringListModel>
#include <QFile>
#include <QMap>
#include <QtDebug>
#include <iostream>
#include <QDir>
#include <QIODevice>
#include <string>
QMap<QString, QString> data;
void writer(const QString &str) {
QFile nameFile(str+"/name");
if (nameFile.open(QIODevice::ReadOnly)) {
QTextStream ts(&nameFile);
const QString &nameContent = ts.readLine();
if (nameContent == "coretemp") {
data["cpu"] = str;
}
if (nameContent == "amdgpu") {
data["gpu"] = str;
}
}
}
tempCore::tempCore()
{
int i = 0;
do {
QString full_path = "/sys/class/hwmon/hwmon"+QString::number(i);
writer(full_path);
i++;
} while (QDir("/sys/class/hwmon/hwmon"+QString::number(i)).exists());
}
QString getCpuTemp() {
QFile dataFile(data["cpu"]+"/temp1_input");
if (dataFile.open(QIODevice::ReadOnly)) {
QTextStream ts(&dataFile);
return QString::number(ts.readLine().toInt()/1000);
} else
return "No data";
}
QString getGpuTemp() {
QFile dataFile(data["gpu"]+"/temp1_input");
if (dataFile.open(QIODevice::ReadOnly)) {
QTextStream ts(&dataFile);
return QString::number(ts.readLine().toInt()/1000);
} else
return "No data";
}