加载Qt 静态/动态库时遇到的错误
Q_INIT_RESOURCE 无法解析的外部符号
static void initResource()
{
// 资源名 ads 必须要与VS项目属性一致
Q_INIT_RESOURCE(ads);
}
“Q_INIT_RESOURCE” 是 Qt 框架中的一个宏,用于初始化 Qt 资源系统。如果你在编译时遇到 “无法解析的外部符号”
错误,通常来讲有以下几个原因:
-
缺少对资源文件的引用:确保你在代码中正确引用了资源文件(通常是以 .qrc 扩展名结尾的文件)。你可以通过在 .pro 文件中添加
RESOURCES += your_resource_file.qrc 来将资源文件与项目关联起来。 -
编译时未包含资源文件:如果你在编译时没有将资源文件包含在构建过程中,编译器将无法找到资源文件中定义的符号。请确保在构建项目时包含资源文件。
-
未正确生成资源文件:如果资源文件没有正确生成,其中定义的符号将无法解析。请确保资源文件正确配置,并使用 Qt 的资源编译器(rcc)将资源文件转换为 C++ 代码。
使用的是 vs2019,只是因为项目属性设置的资源名与代码当中的资源名不一致。
项目属性 / Qt Resource Compiler / rcc
把 Initialization Function Name 改为 ads