Qt Q_INIT_RESOURCE

        使用.qrc文件时,比如加载图标音频等,直接用好像也没问题,那标准的写法是在应用层初始化阶段进行资源文件的初始化,这是什么原因?

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    Q_INIT_RESOURCE(resources);

    return app.exec();
}

        原因:.qrc文件是在编译时整合到可执行文件或者库里的,由于C++的静态初始化顺序的限制,资源初始化函数(即Q_INIT_RESOURCE)可能在应用程序的其他静态对象初始化之后运行。如果不手动调用Q_INIT_RESOURCE,这些静态对象可能会尝试访问资源,但由于资源尚未初始化,可能导致程序失败或崩溃。

你可能感兴趣的:(qt,开发语言)