Я получаю эти ошибки, и я не могу найти решение нигде. Он должен работать, но с такими ошибками я не двигаюсь, и я не могу найти, где проблема. ..C++ неопределенная ссылка на функцию класса
g++ -std=c++0x -pedantic -Wall -Wextra simims.cpp -o simims
/tmp/ccZa3W7s.o: In function `Calendar::Init(double, double)':
simims.cpp:(.text+0x5d): undefined reference to `Calendar::start_time'
simims.cpp:(.text+0x6a): undefined reference to `Calendar::Time'
simims.cpp:(.text+0x77): undefined reference to `Calendar::end_time'
/tmp/ccZa3W7s.o: In function `Calendar::Push(Process*, double)':
simims.cpp:(.text+0x9f): undefined reference to
`Calendar::listOfEvents[abi:cxx11]'
/tmp/ccZa3W7s.o: In function `Calendar::Pop(std::__cxx11::list<Process,
std::allocator<Process> >)':
simims.cpp:(.text+0x1b9): undefined reference to
`Calendar::listOfEvents[abi:cxx11]'
/tmp/ccZa3W7s.o: In function `Calendar::PopLists[abi:cxx11](double)':
simims.cpp:(.text+0x1da): undefined reference to
`Calendar::listOfEvents[abi:cxx11]'
/tmp/ccZa3W7s.o: In function `Calendar::Run()':
simims.cpp:(.text+0x230): undefined reference to `Calendar::Time'
simims.cpp:(.text+0x24a): undefined reference to
`Calendar::listOfEvents[abi:cxx11]'
simims.cpp:(.text+0x29a): undefined reference to `Calendar::end_time'
simims.cpp:(.text+0x2b1): undefined reference to `Calendar::Time'
simims.cpp:(.text+0x2b9): undefined reference to `Calendar::Time'
simims.cpp:(.text+0x2c1): undefined reference to `Calendar::start_time'
simims.cpp:(.text+0x2d9): undefined reference to `Process::Behavior()'
simims.cpp:(.text+0x2f8): undefined reference to `Calendar::Time'
simims.cpp:(.text+0x30c): undefined reference to `Calendar::Time'
/tmp/ccZa3W7s.o: In function `Process::Wait(double)':
simims.cpp:(.text+0x3ef): undefined reference to `Calendar::Time'
collect2: error: ld returned 1 exit status
Вот мой класс в C++:
class Calendar
{
public:
static double start_time;
static double Time;
static double end_time;
static list<list<Process>> listOfEvents;
Calendar();
~Calendar();
static void Run();
static void Push(Process*, double t);
static Process * Pop(list<Process> listOfLists);
static list<Process> PopLists(double t);
static void Init(double, double);
static Calendar * GetInstance() // Singleton
{
if(instance == NULL)
instance = new Calendar();
return instance;
}
private:
static Calendar * instance; // Singleton variable
};
Каждый знает, где может быть проблема? Спасибо
Проблемы выглядеть, чтобы быть в вашей реализации. Как выглядит Calendar.cpp? –
Только это объявление класса * объявляет * переменные класса и функции класса. По-видимому, ваш компилятор не может найти * определение * тех, и ваш линкер тоже не может. – DevSolar