QtCreator 编译失败:'qt_plugin_instance_Find' 尚未声明

Posted

技术标签:

【中文标题】QtCreator 编译失败:\'qt_plugin_instance_Find\' 尚未声明【英文标题】:QtCreator compilation fails: ‘qt_plugin_instance_Find’ has not been declaredQtCreator 编译失败:'qt_plugin_instance_Find' 尚未声明 【发布时间】:2014-06-04 17:11:55 【问题描述】:

我正在尝试在 RHEL 5.8 上安装 QtCreator。我使用的是 Qt 4.8.6,它是使用 -static 标志配置的。当我运行 make 时,我收到以下错误:

/usr/local/qt-creator-2.7.2-src/src/plugins/find/findplugin.cpp:399:错误:“qt_plugin_instance_Find”尚未声明

/usr/local/qt-creator-2.7.2-src/src/libs/aggregation/aggregate.h:在函数'QList Aggregation::query_all(QObject*) [with T = Find::IFindFilter]' : /usr/local/qt-creator-2.7.2-src/src/libs/extensionsystem/pluginmanager.h:76: 从 'static QList ExtensionSystem::PluginManager::getObjects() [with T = Find::IFindFilter] 实例化'

/usr/local/qt-creator-2.7.2-src/src/plugins/find/findplugin.cpp:223:从这里实例化

/usr/local/qt-creator-2.7.2-src/src/libs/aggregation/aggregate.h:122:警告:降低 'QReadLocker& Aggregation::lock() 的可见性 [with T = Find:: IFindFilter]' 来匹配它的类型

make[3]: [.obj/release-shared/findplugin.o] 错误 1 make[3]: 离开目录 /usr/local/qt-creator-build/src/plugins/find' make[2]: [sub-find-make_default] 错误 2 make[2]: 离开目录 /usr/local/qt-creator-build/src/plugins' make[1]: [sub-plugins-make_default-ordered] 错误 2 make[1]: 离开目录`/usr/local/qt-creator-build/src' make: [sub-src-make_default-ordered] 错误 2

我已经用谷歌搜索了一段时间,但找不到任何东西。我从 2.5-2.7 尝试了几个不同版本的 QtCreator,并且总是得到相同的结果。有任何想法吗?谢谢。

【问题讨论】:

【参考方案1】:

我非常怀疑 Qt Creator 的构建系统是否支持静态 Qt 构建,因为 Qt Creator 使用的插件必须动态链接到 Qt Creator 使用的相同 Qt 二进制文件。这在静态构建的 Qt 下是不可能的。

因此,您尝试执行的操作不支持开箱即用。使用 Qt 的动态构建。您可以安装多个 Qt 版本(安装到不同的前缀中),所以这不是问题。有时我有十几个。

或许应该可以使用Q_IMPORT_PLUGIN 宏和相关机制将Qt Creator 的插件编译为静态插件。我不知道 Qt Creator 的来源是否支持这种开箱即用的功能。或许只需稍作修改即可使其正常工作。

【讨论】:

以上是关于QtCreator 编译失败:'qt_plugin_instance_Find' 尚未声明的主要内容,如果未能解决你的问题,请参考以下文章

Qt Creator - calloc 因内存大而失败

QT Creator 构建错误:转换为 COFF 期间失败

由于找不到 qmldir,Android 的扩展插件编译失败

在 QtCreator 中构建失败时发出声音信号

麒麟V10源码编译qtCreator4.0.3记录

麒麟V10源码编译qtCreator4.0.3记录