Qt 在QML应用程序中使用预编译插件(通过共享库)
我有一个QML插件(编译成Qt 在QML应用程序中使用预编译插件(通过共享库),qt,plugins,qml,qtquick2,Qt,Plugins,Qml,Qtquick2,我有一个QML插件(编译成.so)由。我希望在我自己的QML应用程序中重新使用它,而不必每次都重新构建它。我想复制。这样就可以用最少的额外代码编写: 导入QQuickMapboxGL 1.0 在我的QML文件的顶部,让它工作 我需要在哪里复制QML项目中的.so,以及如何将其添加到项目中,以便QML运行时可以找到它? 我所尝试的: 创建一个QQuickMapboxGL目录,其中包含libqmapboxgl.so 在该目录中创建一个包含以下内容的qmldir文件: plugin qmapboxg
.so
)由。我希望在我自己的QML应用程序中重新使用它,而不必每次都重新构建它。我想复制。这样
就可以用最少的额外代码编写:
导入QQuickMapboxGL 1.0
在我的QML文件的顶部,让它工作
我需要在哪里复制QML项目中的.so
,以及如何将其添加到项目中,以便QML运行时可以找到它?
我所尝试的:
QQuickMapboxGL
目录,其中包含libqmapboxgl.so
qmldir
文件:
plugin qmapboxgl
.pro
文件中:
INSTALL\u DIR=$$PWD/。/INSTALL
target.path=$$INSTALL\u DIR
#将QQuickMapboxGL文件夹复制到安装目录
plugin.files=QQuickMapboxGL/*
plugin.path=$$INSTALL\u DIR/QQuickMapboxGL
安装+=目标插件
makeinstall
build步骤我已经验证了插件和我的应用程序都是用相同版本的g++(
g++-5(Ubuntu 5.4.1-2ubuntu1~14.04)5.4.1 20160904)和相同的Qt下载(5.7.0)编译的;没有类继承自qqqmlextensionplugin
或相关。它只是一个共享的代码库
能够通过以下方式解决此问题:
- 将MapboxGL的头文件添加到我的项目
- 在my
main.cpp
中:
#包括“第三方/mapbox gl native/platform/qt/include/qmapbox.hpp”
- 调用
QMapbox::registerTypes()代码>(在main
内)
- 在
libs
目录中复制libmapboxgl.so
(通过Mapbox的make/cmake构建)
- 在
myproject.pro
中添加:LIBS+=-L./LIBS-lqmapboxgl
- 在我的QML代码中,导入QQuickMapboxGL 1.0,然后使用
MapboxMap
- 正在将
libmapboxgl.so
复制到LD\u LIBRARY\u路径所引用的某个位置
这个库是什么?QML插件?@folibis是的。它是QQuickMapboxGL
from。我想路径应该是'appPath/imports/pluginName/plugin.dll'-@Redanium在提供这些链接后,你忘了添加注释了吗?除了“RTFM”之外,你还建议了什么特别的信息吗?这个当我试图将其包含在我的项目中时,我询问了一个特定的错误。这两个链接中有没有我遗漏的相关内容?