undefined reference to CPUAllocatorSingleton::instance

它发生的原因是你声明了 CPUAllocatorSingleton 类中的 instance 变量,但没有提供它的定义。

这个错误是链接器无法找到 CPUAllocatorSingleton::instance 的定义。它发生的原因是你声明了 CPUAllocatorSingleton 类中的 instance 变量,但没有提供它的定义。

具体来说,错误信息显示:

  • undefined reference to CPUAllocatorSingleton::instance :编译器找不到 CPUAllocatorSingleton::instance 的定义。

  • **relocation against _ZN21CPUAllocatorSingleton8instanceE'**:这表明链接器正在试图将代码链接到 CPUAllocatorSingleton::instance`,但是找不到该变量的实际位置。

解决方法:

  1. 定义 instance 变量:

    你在 CPUAllocatorSingleton 类中声明了 instance 变量,但它需要在 .cpp 文件中进行定义。可以像下面这样定义 instance

    cpp 复制代码
    // 在头文件中声明
    class CPUAllocatorSingleton {
    public:
        static std::shared_ptr<CPUAllocator> getInstance();
    
    private:
        static std::shared_ptr<CPUAllocator> instance;  // 声明静态成员变量
    };
    
    // 在 .cpp 文件中定义
    std::shared_ptr<CPUAllocator> CPUAllocatorSingleton::instance = nullptr;  // 定义静态成员变量
  2. 静态成员变量的定义:

    静态成员变量需要在类外部进行定义即使它已经在类内声明了。 否则,编译器就找不到该变量的地址,从而导致链接错误。

相关推荐
这个软件需要设计一下2 天前
ninedata安装磁盘不足问题解决
运维·bug
热爱生活的五柒2 天前
cc-switch安装方法、介绍及遇到的bug
bug·cc-switch
Greenland_122 天前
Android 混淆与混淆后bug日志问题定位
android·bug
应用市场2 天前
踩坑记录:有符号整数位运算的那些隐蔽Bug——符号扩展、算术右移与补码
java·开发语言·bug
一灰灰blog3 天前
Jar包会自己消失?Excel会“记忆“数据?我遇到了两个灵异bug
java·spring boot·bug·excel
王家视频教程图书馆4 天前
修复服务端500相应,修复客户端上传文件.tmp 服务端接受不到文件bug
bug
qq_401700414 天前
Qt开发过程中遇到哪些经典的bug
qt·bug
0白露6 天前
关闭搜狗输入法右下角广告,可以适用于大多数应用系统通知的广告
windows·bug
一只自律的鸡7 天前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
Lichenpar8 天前
Springboot采用FastJson2作为MessageConverter时,配置的全局日期类型序列化转换BUG
java·开发语言·bug