Возникает ошибка при компиляции в g++. Строки из Makefile:
generation: generation.cpp source.hpp source.cpp
g++ -o generation generation.cpp sens.cpp
Ошибка следующая:
/tmp/ccosdWFb.o: In function `main':
generation.cpp:(.text+0x284): undefined reference to `SensorData::generateMesuares()'
generation.cpp:(.text+0x2db): undefined reference to `Sensor::setModel()'
generation.cpp:(.text+0x2f1): undefined reference to `Sensor::setCoordinates()'
generation.cpp:(.text+0x307): undefined reference to `Sensor::setDate()'
generation.cpp:(.text+0x31d): undefined reference to `SensorData::generateMesuares()'
generation.cpp:(.text+0x420): undefined reference to `SensorData::choiceTime()'
generation.cpp:(.text+0x44c): undefined reference to `SensorData::choiceTime()'
/tmp/ccosdWFb.o: In function `SensorData::SensorData()':
generation.cpp:(.text._ZN10SensorDataC2Ev[_ZN10SensorDataC5Ev]+0x15): undefined reference to `Sensor::Sensor()'
collect2: error: ld returned 1 exit status
make: *** [generation] Error 1
Если имеющиеся 3 файла объединить в один, то всё работает!!
g++ -o generation generation.cpp
В чем же проблема??? Что я делаю не так??
3 файла с кодом прилагаю.
// ***** generation.cpp *****
#include <ctime> // time_t
#include <cstdio> // sprintf
#include <iostream> //cin cout
#include <cstdlib> // exit success
#include "source.hpp"
using namespace std;
int main (int argc, char* argv[])
{
return EXIT_SUCCESS;
}
// *****source.hpp
#ifndef SOURCE_HPP
#define SOURCE_HPP
#include <ctime> // time_t
#include <vector> // vector
#include <string> // string
using namespace std;
struct Coordinate
{
Coordinate(int form); // form=0 (широта), form!=0 (долгота),
int type; // тип координаты (широта=0, долгота=1)
int partOfWorld; // (+)N (-)S (+)E (-)W
int degrees; // градусы
int minutes; // минуты
int seconds; // секунды
void set();
int conversion();
};
class Measures
{
public:
Measures();
Measures(time_t timeAndDate, float temperatureMeasure, float humidityMeasure);
void getMeasures();
time_t dateAndTime;
float temperature;
float humidity;
};
class Sensor
{
public:
Sensor();
Sensor(const char *str, time_t timeAndDate, int latLocation,
int longLocation);
void setModel();
void setCoordinates();
time_t conversionTime();
void setDate();
void getInfo();
time_t getInstallDate();
private:
string model; // модель
int latitude; // место установки широта, секунды
int longitude; // место установки долгота, секунды
time_t installationDate; // дата установки
};
class SensorData : public Sensor
{
public:
SensorData(){};
SensorData(const char *str, time_t timeAndDate, int latLocation,
int longLocation) : Sensor(str, timeAndDate, latLocation, longLocation){};
vector<Measures> measures_;
void generateMesuares();
vector<Measures>::iterator searchIterator(Measures *startPtr,
time_t timeLimit);
//выбор времени из диапазона времени измерений
time_t choiceTime();
vector<Measures>::iterator searchIterator(vector<Measures>::iterator p,
time_t timeLimit);
//печатаем максимальное T и H за указанный период
void getMaxMeasure(time_t timeBegin, time_t timeEnd);
//печатаем минимальное T и H за указанный период
void getMinMeasure(time_t timeBegin, time_t timeEnd);
//печатаем среднее T и H за указанный период
void getMiddleMeasure(time_t timeBegin, time_t timeEnd);
};
#endif // SOURCE_HPP
// *****source.cpp
#include <ctime> // struct tm, time_t, mktime, time, localtime, ctime
#include <vector> // vector
#include <iostream> // cin, cout
#include <iomanip> // << setup
#include <string> // string
#include "source.hpp"
using namespace std;
// struct Coordinate
Coordinate::Coordinate(int form)
{
//
}
// class Measures
Measures::Measures()
{
// }
// class Sensor
Sensor::Sensor()
{
//
}
SensorData:: SensorData()
{
//
}
Как правильно собрать проект?
Действительно, ответ прост. Как сказал VTT - не все файлы собираю. В строке G++ ошибка - указан файл sens.cpp вместо требуемого source.cpp.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Цикл выпоняется 1 раз, я получаю html-тело страницыНа вторую итерацию сервер не отправляет мне ничего (received == 0)
Для чего нужен static_cast, как он работает и где его применяют?
У меня есть три чекбокса, QFontComboBox и QSpinBox, а также главное текстовое поле QTextEdit