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. 静态成员变量的定义:

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

相关推荐
zzc9219 小时前
Adobe Illustrator设置的颜色和显示的颜色不对应问题
adobe·bug·illustrator·错误·配色·透明度·底色
开-悟3 天前
嵌入式编程-使用AI查找BUG的启发
c语言·人工智能·嵌入式硬件·bug
一入JAVA毁终身3 天前
Data的时区格式BUG
bug
一入JAVA毁终身4 天前
处理Lombok的一个小BUG
java·开发语言·bug
SeaTunnel4 天前
SeaTunnel 社区月报(5-6 月):全新功能上线、Bug 大扫除、Merge 之星是谁?
大数据·开源·bug·数据集成·seatunnel
紫璨月4 天前
nginx反向代理的bug
运维·nginx·bug
从后端到QT4 天前
SRS流媒体服务器之本地测试rtc推流bug
bug·实时音视频
Java知识库15 天前
MySQL RC隔离级别惊现间隙锁:是bug吗?
数据库·mysql·bug
安卓机器15 天前
rom定制系列------红米note11 5G版 MTK芯片强解bl锁修复bug 官方系统 面具root批量线刷版
5g·bug
剽悍一小兔15 天前
一个小BUG引发的对Mybatis-Plus的模糊查询的思考
bug·mybatis