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' 尚未声明的主要内容,如果未能解决你的问题,请参考以下文章