Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 自己的静态链接插件_Qt_Plugins_Static_Linker - Fatal编程技术网

Qt 自己的静态链接插件

Qt 自己的静态链接插件,qt,plugins,static,linker,Qt,Plugins,Static,Linker,我有插件,我想与我的应用程序静态链接它。 在plugin.pro文件中,我有: TEMPLATE = lib CONFIG += staticlib 在plugin.cpp中: Q_EXPORT_PLUGIN2(plugin, pluginClass) 当然,.pro文件中的目标与插件名称相同 在myapp.pro文件中: LIBS += libplugin.a main.cpp: #include <QtGui/QApplication> #include <QtPlu

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

TEMPLATE = lib
CONFIG += staticlib
在plugin.cpp中:

Q_EXPORT_PLUGIN2(plugin, pluginClass)
当然,.pro文件中的目标与插件名称相同

在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();
}
因此,我在myapp.pro文件中给出了libplugin.a的完整路径,并与Q_IMPORT_PLUGIN error发生冲突:

undefined reference to `qt_plugin_instance_plugin()'
还有很多这样的错误:

cannot find -lmyplugin.a
collect2: ld returned 1 exit status
undefined reference to `pluginClass::function()'
我包括了我的插件的*.h文件


我做错了什么?

在plugin.pro文件中使用以下代码:

CONFIG += plugin static
而不是

CONFIG += staticlib

IIRC.pro文件中的行应为
LIBS+=plugin
,我不确定这是否会修复所有错误,但我打赌它会修复第一个链接器错误。@Chris认为这仅对Qt插件有帮助。我有自己的插件,LIBS+=插件原因:“插件:没有这样的文件或目录”