qt - 自己的静态链接插件

标签 qt plugins static linker

我有插件,我想将它与我的应用程序静态链接。 在plugin.pro文件中我有:

TEMPLATE = lib
CONFIG += staticlib

在plugin.cpp中:

Q_EXPORT_PLUGIN2(plugin, pluginClass)

当然.pro文件中的TARGET与插件名称相同。

在 myapp.pro 文件中:

LIBS += libplugin.a

main.cpp:

#include <QtGui/QApplication>
#include <QtPlugin>

Q_IMPORT_PLUGIN(plugin)

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    ...
    return a.exec();
}

插件编译没有错误,我得到了 *.a 和 *.o 文件,所以我将 *.a 文件复制到 myapp 目录,当我尝试编译时,出现如下错误:

cannot find -lmyplugin.a
collect2: ld returned 1 exit status

所以我在 myapp.pro 文件中给出了 libplugin.a 的完整路径,并且出现了 Q_IMPORT_PLUGIN 错误:

undefined reference to `qt_plugin_instance_plugin()'

还有很多这样的错误:

undefined reference to `pluginClass::function()'

我包含了我的插件的 *.h 文件。

我做错了什么?

最佳答案

在您的插件 .pro 文件中使用以下代码:

CONFIG += plugin static

而不是

CONFIG += staticlib

关于qt - 自己的静态链接插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12872598/

相关文章:

c++ - 在STL容器中优先搜索的C++优雅方式

c++ - qt 和 libbluedevil : No Such slot

Wordpress 插件设置数据

grails - 编辑插件的标签库。然后如何将其提交给svn?

java - 是否可以为每个带有附加信息的 jar 文件使用 spring 配置 XML 文件?

java - 记录器应该始终是最终的和静态的吗?

c++ - 如何遍历 QMultiHash 中的所有 values()

c++ - Qt - 如何在 30 天后删除日志文件且文件名不固定

c++ - 我可以让静态函数继承每个类的特定值吗?

c++ - ABC 中的多态静态常量成员变量?