【发布时间】:2020-12-15 14:36:23
【问题描述】:
#ifndef CONFIG_CPP
#define CONFIG_CPP
#include <mutex>
using namespace std;
class Config {
public:
static Config* GetDefult(){
if (p_instance == nullptr){
mutex_.lock();
if (p_instance == nullptr){
p_instance = new Config();
}
mutex_.unlock();
}
return p_instance;
}
private:
static Config* p_instance;
static mutex mutex_;
Config(){};
};
int main(){
auto t1 = Config::GetDefult();
}
#endif //CONFIG_CPP
这些消息在我跑步时出现
/tmp/ccKc2m2t.o:在函数Config::GetDefult()': Config.cpp:(.text._ZN6Config9GetDefultEv[_ZN6Config9GetDefultEv]+0xc): undefined reference to Config::p_instance'
Config.cpp:(.text._ZN6Config9GetDefultEv[_ZN6Config9GetDefultEv]+0x16): 未定义引用Config::mutex_' Config.cpp:(.text._ZN6Config9GetDefultEv[_ZN6Config9GetDefultEv]+0x22): undefined reference to Config::p_instance'
Config.cpp:(.text._ZN6Config9GetDefultEv[ZN6Config9GetDefultEv]+0x43): 未定义引用Config::p_instance' Config.cpp:(.text._ZN6Config9GetDefultEv[_ZN6Config9GetDefultEv]+0x48): undefined reference to Config::mutex'
Config.cpp:(.text._ZN6Config9GetDefultEv[_ZN6Config9GetDefultEv]+0x54): 未定义对 `Config::p_instance' 的引用
collect2:错误:ld 返回 1 个退出状态
【问题讨论】:
-
你把
Config* Config::p_instance{};放到cpp文件里了吗?为什么要包含警卫? -
这能回答你的问题吗? Undefined reference to static variable c++
-
好的,非常感谢。
标签: c++