首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编译自己的QtCreator插件失败

编译自己的QtCreator插件失败
EN

Stack Overflow用户
提问于 2013-11-07 02:17:40
回答 1查看 2.8K关注 0票数 2

我正试图通过遵循QtCreator指南来创建自己的插件。

因此,我克隆了回购,并检查了v2.8.1标记的提交(c3ed746c)。

然后,我复制了我的QtCreator 2.8.1目录,并创建了一个新的QtCreator项目。

然后在我的项目目录中创建一个名为MyPlugin.json的新文件。

如果我试图编译插件,就会得到以下错误:

e:\qtprojects\build-myplugin-desktop_qt_5_1_1_msvc2012_32bit-debug\debug../../MyPlugin/mypluginplugin.h(6):致命错误C1083:无法打开包含文件:"extensionsystem/iplugin.h":没有这样的文件或目录jom: E:\QtProjects\build-MyPlugin-Desktop_Qt_5_1_1_MSVC2012_32bit-Debug\Makefile.Debug debug\moc_mypluginplugin.obj error 2 jom: e:\QtProjects\debug\moc_mypluginplugin.obj_Qt _5_1_1_Make 2012_32位- debug \Makefile调试错误2 10:56:51:进程"E:\Qt\Qt5\Tools\QtCreator\bin\jom.exe“与代码2一起退出。在执行步骤'Make‘10:56:51:运行时间: 00:01时,生成/部署项目myplugin (工具包:桌面Qt 5.1.1 MSVC2012 32位)时出错。

我要怎么做才能让它发挥作用?

以下是源文件:

myplugin.pro

代码语言:javascript
运行
AI代码解释
复制
DEFINES += MYPLUGIN_LIBRARY

 # MyPlugin files

SOURCES += mypluginplugin.cpp

HEADERS += mypluginplugin.h \
        myplugin_global.h \
        mypluginconstants.h

 # Qt Creator linking

 ## set the QTC_SOURCE environment variable to override the setting here
QTCREATOR_SOURCES = $$(QTC_SOURCE)
isEmpty(QTCREATOR_SOURCES):QTCREATOR_SOURCES=E:/QtProjects/_QtCreatorPlugIns/qt-creator

 ## set the QTC_BUILD environment variable to override the setting here
IDE_BUILD_TREE = $$(QTC_BUILD)
isEmpty(IDE_BUILD_TREE):IDE_BUILD_TREE=E:/QtProjects/_QtCreatorPlugIns/QtCreator

 ## uncomment to build plugin into user config directory
 ## <localappdata>/plugins/<ideversion>
 ##    where <localappdata> is e.g.
 ##    "%LOCALAPPDATA%\QtProject\qtcreator" on Windows Vista and later
 ##    "$XDG_DATA_HOME/data/QtProject/qtcreator" or "~/.local/share/data/QtProject/qtcreator" on Linux
 ##    "~/Library/Application Support/QtProject/Qt Creator" on Mac
 # USE_USER_DESTDIR = yes

PROVIDER = MyCompany

include($$QTCREATOR_SOURCES/src/qtcreatorplugin.pri)

myplugin_global.h

代码语言:javascript
运行
AI代码解释
复制
#ifndef MYPLUGIN_GLOBAL_H
#define MYPLUGIN_GLOBAL_H

#include <QtGlobal>

#if defined(MYPLUGIN_LIBRARY)
#  define MYPLUGINSHARED_EXPORT Q_DECL_EXPORT
#else
#  define MYPLUGINSHARED_EXPORT Q_DECL_IMPORT
#endif

#endif // MYPLUGIN_GLOBAL_H

mypluginconstants.h

代码语言:javascript
运行
AI代码解释
复制
#ifndef MYPLUGINCONSTANTS_H
#define MYPLUGINCONSTANTS_H

namespace MyPlugin {
    namespace Constants {

        const char ACTION_ID[] = "MyPlugin.Action";
        const char MENU_ID[] = "MyPlugin.Menu";

    } // namespace MyPlugin
} // namespace Constants

#endif // MYPLUGINCONSTANTS_H

mypluginplugin.h

代码语言:javascript
运行
AI代码解释
复制
#ifndef MYPLUGIN_H
#define MYPLUGIN_H

#include "myplugin_global.h"

#include <extensionsystem/iplugin.h>

namespace MyPlugin {
    namespace Internal {

        class MyPluginPlugin : public ExtensionSystem::IPlugin
        {
                Q_OBJECT
                Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "MyPlugin.json")

            public:
                MyPluginPlugin();
                ~MyPluginPlugin();

                bool initialize(const QStringList &arguments, QString *errorString);
                void extensionsInitialized();
                ShutdownFlag aboutToShutdown();

            private slots:
                void triggerAction();
        };

    } // namespace Internal
} // namespace MyPlugin

#endif // MYPLUGIN_H

mypluginplugin.cpp

代码语言:javascript
运行
AI代码解释
复制
#include "mypluginplugin.h"
#include "mypluginconstants.h"

#include <coreplugin/icore.h>
#include <coreplugin/icontext.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/command.h>
#include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/coreconstants.h>

#include <QAction>
#include <QMessageBox>
#include <QMainWindow>
#include <QMenu>

#include <QtPlugin>

using namespace MyPlugin::Internal;

MyPluginPlugin::MyPluginPlugin()
{
    // Create your members
}

MyPluginPlugin::~MyPluginPlugin()
{
    // Unregister objects from the plugin manager's object pool
    // Delete members
}

bool MyPluginPlugin::initialize(const QStringList &arguments, QString *errorString)
{
    // Register objects in the plugin manager's object pool
    // Load settings
    // Add actions to menus
    // Connect to other plugins' signals
    // In the initialize method, a plugin can be sure that the plugins it
    // depends on have initialized their members.

    Q_UNUSED(arguments)
    Q_UNUSED(errorString)

    QAction *action = new QAction(tr("MyPlugin action"), this);
    Core::Command *cmd = Core::ActionManager::registerAction(action, Constants::ACTION_ID,
                                                             Core::Context(Core::Constants::C_GLOBAL));
    cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Alt+Meta+A")));
    connect(action, SIGNAL(triggered()), this, SLOT(triggerAction()));

    Core::ActionContainer *menu = Core::ActionManager::createMenu(Constants::MENU_ID);
    menu->menu()->setTitle(tr("MyPlugin"));
    menu->addAction(cmd);
    Core::ActionManager::actionContainer(Core::Constants::M_TOOLS)->addMenu(menu);

    return true;
}

void MyPluginPlugin::extensionsInitialized()
{
    // Retrieve objects from the plugin manager's object pool
    // In the extensionsInitialized method, a plugin can be sure that all
    // plugins that depend on it are completely initialized.
}

ExtensionSystem::IPlugin::ShutdownFlag MyPluginPlugin::aboutToShutdown()
{
    // Save settings
    // Disconnect from signals that are not needed during shutdown
    // Hide UI (if you add UI that is not in the main window directly)
    return SynchronousShutdown;
}

void MyPluginPlugin::triggerAction()
{
    QMessageBox::information(Core::ICore::mainWindow(),
                             tr("Action triggered"),
                             tr("This is an action from MyPlugin."));
}

Q_EXPORT_PLUGIN2(MyPlugin, MyPluginPlugin)

目录

代码语言:javascript
运行
AI代码解释
复制
E:\QtProjects\_QtCreatorPlugIns> tree

├───qt-creator
│   ├───bin
│   ├───dist
│   ├───doc
│   ├───lib
│   ├───qbs
│   ├───scripts
│   ├───share
│   ├───srcn64interrupt
│   └───testsster
├───QtCreator
│   ├───bin
│   ├───lib0
│   └───share
EN

回答 1

Stack Overflow用户

发布于 2013-12-17 18:45:17

如果您是linux用户,可以下载qtcreator-dev。但是,我不知道它在Windows上是如何工作的。

  1. 开式终端
  2. 类型:sudo apt-get install qtcreator-dev
  3. 好了。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19833283

复制
相关文章
AWS EC2 增加多个弹性 IP
一、 添加一个私有IP的 1. 实例->联网->管理私有IP地址 2. 分配新IP->是,更新 注意:记下刚生成的 私有 IP 二、把刚才生成的私有IP地址添加到网络接口 1. SSH连接到您的实例并
码农编程进阶笔记
2021/07/20
2.1K0
Logstash 实例
8、Docker日志与处理:/var/lib/docker/containers/
用户5760343
2022/05/19
3960
Logstash 实例
Logstash:处理多个 input
这里的 input 可以支持多个 input,同时多个 worker 可以处理 filter 及 output:
腾讯云大数据
2020/07/31
2.8K0
Logstash:处理多个 input
Logstash:多个配置文件(conf)
在前面的一篇文章 “Logstash:处理多个input” 中,我们介绍了如何使用在同一个配置文件中处理两个 input 的情况。在今天这篇文章中,我们来介绍如何来处理多个配置文件的问题。对于多个配置的处理方法,有多个处理方法:
腾讯云大数据
2020/08/05
4K0
Logstash:多个配置文件(conf)
干货 | 携程酒店搜索引擎AWS上云实践
作者简介 宮娴,携程高级后端开发工程师;Spike,携程高级后端开发专家。 随着携程国际化业务的快速推进,搜索引擎作为用户体验中至关重要的一环,上云变得志在必行。本文主要分享酒店搜索引擎迁移AWS的探索与实践过程,内容将涵盖一个HTTP请求的全链路处理过程:包括从APP发出请求到网关,再到内网错综复杂的微服务,最后到所依赖的各种持久化存储。 一、微服务架构带来的挑战 这次上云的是爆款业务,用户直观的感受是点击TRIP APP的Hotel搜索页的Hotel Staycation Deals。 携程采用主流
携程技术
2022/04/15
8170
干货 | 携程酒店搜索引擎AWS上云实践
AWS 上的云原生 Jenkins
我们使用 Jenkins 搭建持续交付流水线,和其他很多团队一样,这些年我们围绕 Jenkins 创建了很多工作流程和自动化。Jenkins 是我们团队取得成功的关键,让我们能够在上一季度顺利进入生产677次,搭建及部署时长平均为12分钟。
LinuxSuRen
2019/08/26
2K0
AWS 上的云原生 Jenkins
多个jvm实例_java类的实例
我们知道,一个对象在可以被使用之前必须要被正确地实例化。而实例化实际指的就是以一个java类为模板创建对象/实例的过程。比如说常见的 Person = new Person()代码就是一个将Person类实例化并创建引用的过程。
全栈程序员站长
2022/09/23
2K0
多个jvm实例_java类的实例
aws生产实践-22:aws上创建openvpn
https://github.com/hepyu/openvpn-install/blob/master/openvpn-install.sh
千里行走
2022/02/10
1.7K0
aws生产实践-22:aws上创建openvpn
在AWS云上的SAP
虽然最近亚马逊在迁离Oracle的数据库,使用Aurora PostgreSQL导致Prime Day促销日出现故障,但这似乎并不影响Amazon Aurora 数据库的推进,并且亚马逊一直在说Amazon Aurora兼容MySQL和PostgreSQL,是一种将数据库迁移到云的优秀工具。可见其要脱离Oracle的决心。而SAP也做出了同样的事情,在以前的SAP ERP系统里,SAP一直使用着别人的数据库,比如Oracle,后来SAP推出了HANA内存数据库,在S/4 HANA系列版本中,成功的使用了自己研发的数据库。可以看出这两家企业都想离开Oracle,所以合作是必然的事。
matinal
2019/01/04
2.3K0
在AWS云上的SAP
生产环境下的 Node.js 日志记录方案[每日前端夜话0xFD]
设置正确的日志记录基础结构可帮助我们查找发生的问题、调试和监视应用程序。从最基本的角度来看,我们应该从基础架构中得到以下内容:
疯狂的技术宅
2019/12/23
1.1K0
生产环境下的 Node.js 日志记录方案[每日前端夜话0xFD]
「  Flex弹性布局 (上) 篇  」
{dotted startColor="#ff6c6c" endColor="#1989fa"/}
青益
2023/01/03
5680
「  Flex弹性布局 (上) 篇  」
测试右移之logstash完整配置实例
logstash是ElasticStack(ELK)的一个重要技术组件,用于对数据进行转换处理。他可以接受各种输入源,并按照记录对数据进行变换,并导出到输出源中。
霍格沃兹-测试开发学社
2022/05/06
4690
为同机器上的多个Oracle实例配置独立监听器
假设我们需要将多个oracle实例部署在同一套RAC集群/相同物理机上时,默认部署情况下,多个oracle实例共享使用默认的1521监听器。
andelwu
2021/01/23
2.5K0
测试右移之logstash完整配置实例
logstash是ElasticStack(ELK)的一个重要技术组件,用于对数据进行转换处理。他可以接受各种输入源,并按照记录对数据进行变换,并导出到输出源中。
用户9652437
2022/04/20
5080
PaaS 调研:GAE与 AWS(上)
韩伟
2017/11/09
2.5K0
PaaS 调研:GAE与 AWS(上)
腾讯云弹性网卡绑定多个IPWINDOWS下的设置
网卡绑定多个IP请参考https://cloud.tencent.com/developer/article/1171566
用户3959706
2018/11/20
5.3K0
腾讯云弹性网卡绑定多个IPWINDOWS下的设置
mysql启动多个实例
机器环境:CentOS Linux release 7.4.1708 (Core)
dogfei
2020/07/31
3.5K0
AWS 上的生产环境性能分析案例
案例是一个泰国网站的生产环境(请脑补一句“萨瓦迪卡”,为了叙述方便,下文中均以"萨瓦迪卡"指代这个网站。)“萨瓦迪卡”是一个 采用 Wordpress + MySQL搭建的应用。这个遗留系统已经工作了五年。客户已经把在其它 VPS 上平移到 AWS 上。平移(lift and shift)是说原样复制,而迁移(migration)还要进行改造。而客户唯一发挥 AWS 优势的一点就是用了一个配置很高的 EC2 虚拟机 —— m4.4xlarge。这样一台配置的虚拟机有 16 个虚拟 CPU,64 GiB 的内存,以及 2000 Mbps 的网络带宽,最高 3000 IOPS 的 200GiB 的块存储设备(也就是硬盘)。
顾宇
2018/08/17
1K0
用漫画看懂ElasticSearch弹性搜索(一)
在云计算的Paas层,经常有听到ElasticSearch,我最初的理解,该组件用来进行电商网页的模糊性查找最好了。例如在taobao的搜索栏查找“给爸爸的生日礼物”,也许宝贝的标题是组合出来的,甚至只是宝贝的描述正文带其中一些关键字,也能被搜索出来,推荐给你。这些功能是传统的Mysql Like%功能所不具备的。但我一直一知半解,今天我们用漫画来看懂ElasticSearch,相信会让你长时间难以忘记“她“的好。
希望的田野
2019/09/24
1.5K0
用漫画看懂ElasticSearch弹性搜索(一)
基于ARM的AWS EC2实例上的PG跑起来性能怎么样?
ARM处理器在数据中心中的应用一直是一个热门话题,我们很想看看他在PG中表现怎么样。用于测试和评估基于ARM的服务器,其可用性一直是一个主要障碍,当AWS 2018年宣布在他们的云中提供基于ARM的处理器时,转机出现了。但是还不能太过激动,因为很多人认为这是个实验性的东西。我们也很谨慎将它推荐给关键用途,而且在测试时也没太过用心。但是2020年5月Graviton2发布后,可以认真考虑了。我们决定从PG运行角度独立研究实例的价格/性能。
yzsDBA
2021/02/03
8970
基于ARM的AWS EC2实例上的PG跑起来性能怎么样?

相似问题

Azure响应时间较慢

124

Azure应用服务网站在分阶段/生产交换后回收

12

Azure ML Web服务-响应时间较慢

115

IIS网站在进行计算时响应较慢

10

Azure函数响应较慢

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档