C++ 对构造函数的未定义引用(当我显式使用它时)";键入“out”;
这是代码,为什么我在链接时得到一个未定义的引用C++ 对构造函数的未定义引用(当我显式使用它时)";键入“out”;,c++,singleton,undefined-reference,C++,Singleton,Undefined Reference,这是代码,为什么我在链接时得到一个未定义的引用 g++ -Wall -o main main.o TimerManager.o TimerManager.o: In function `TimerManager::Instance()': TimerManager.cpp:(.text+0x2d): undefined reference to `TimerManager::TimerManager()' collect2: ld returned 1 exit status make: ***
g++ -Wall -o main main.o TimerManager.o
TimerManager.o: In function `TimerManager::Instance()':
TimerManager.cpp:(.text+0x2d): undefined reference to `TimerManager::TimerManager()'
collect2: ld returned 1 exit status
make: *** [main] Error 1
--
我怀疑你的目标文件过期了 这为我编译和链接:
% g++ -Wall -o main main.cpp TimerManager.cpp
main.cpp: In function 'int main(int, char**)':
main.cpp:5:17: warning: unused variable 'l_tm' [-Wunused-variable]
#ifndef TIMERMANAGER_H_
#define TIMERMANAGER_H_
#include <stdlib.h>
class TimerManager {
public:
static TimerManager *Instance();
~TimerManager();
protected:
TimerManager();
private:
static TimerManager *s_instance;
};
#endif
#include "TimerManager.h"
TimerManager *TimerManager::s_instance = NULL;
TimerManager::TimerManager()
{
}
TimerManager::~TimerManager()
{
delete s_instance;
}
TimerManager *TimerManager::Instance() {
if (s_instance == NULL) {
s_instance = new TimerManager();
}
return s_instance;
}
% g++ -Wall -o main main.cpp TimerManager.cpp
main.cpp: In function 'int main(int, char**)':
main.cpp:5:17: warning: unused variable 'l_tm' [-Wunused-variable]