Error: Map theme file does not exist... (Qt5 application with third party libraries Marble)
Error: Map theme file does not exist... (Qt5 application with third party libraries Marble)
我正在尝试使用动态链接部署带有 Marble 插件的 Qt5 应用程序。我已将 Qt5 库、平台插件和大理石 libmarblewidget-qt5.so.22 放入我的可执行应用程序中。该应用程序在 Ubuntu 上运行,上面安装了大理石。现在,我正在尝试 运行 在 Ubuntu 上安装应用程序,但没有安装大理石。我正在使用 http://doc.qt.io/qt-5/linux-deployment.html 中的启动脚本来启动我的应用程序。我正在研究 Ubuntu 16.04 32 位。
当我 运行 应用程序的启动脚本(从终端)时,我收到此错误消息:
Map theme file does not exist: ""
Ignoring to load the following file since it doesn't look like a valid Marble plugin: "/boot/initrd.img-4.4.0-21-generic"
Reason: "'/boot/initrd.img-4.4.0-21-generic' is not an ELF object"
Ignoring to load the following file since it doesn't look like a valid Marble plugin: "/boot/vmlinuz-4.4.0-21-generic"
Reason: "'/boot/vmlinuz-4.4.0-21-generic' is not an ELF object"
Segmentation fault (core dumped)
我是否遗漏了什么,除了 libmarblewidget-qt5.so.22 之外,我还应该拥有其他东西吗?
Marble 需要超过 libmarblewidget-qt5.so
到 运行 才能正常使用。至少你需要你想要显示的地图主题的数据,通常还需要一些插件。编译 Marble 后查看安装文件夹 (CMAKE_INSTALL_PREFIX
)。你会在例如lib64/marble/
和 share/marble/data
.
中的数据
插件和数据的路径被编译到 libmarblewidget-qt5.so
,但可以在 运行 时更改。为此,请使用 MarbleDirs::setMarbleDataPath()
和 MarbleDirs::setMarblePluginPath()
.
总之,你必须
- 将全部或部分插件发送到您选择的文件夹
- 致电
MarbleDirs::setMarblePluginPath("/your/plugins/install/folder");
- 将全部或部分数据发送到您选择的另一个文件夹
- 致电
MarbleDirs::setMarbleDataPath("/your/data/install/folder");
你得到的输出(也可能是段错误)是因为编译的插件路径在目标系统上不存在,因此 Marble 的插件管理器在 /
中搜索并尝试加载它找到的文件那里。
我正在尝试使用动态链接部署带有 Marble 插件的 Qt5 应用程序。我已将 Qt5 库、平台插件和大理石 libmarblewidget-qt5.so.22 放入我的可执行应用程序中。该应用程序在 Ubuntu 上运行,上面安装了大理石。现在,我正在尝试 运行 在 Ubuntu 上安装应用程序,但没有安装大理石。我正在使用 http://doc.qt.io/qt-5/linux-deployment.html 中的启动脚本来启动我的应用程序。我正在研究 Ubuntu 16.04 32 位。
当我 运行 应用程序的启动脚本(从终端)时,我收到此错误消息:
Map theme file does not exist: ""
Ignoring to load the following file since it doesn't look like a valid Marble plugin: "/boot/initrd.img-4.4.0-21-generic"
Reason: "'/boot/initrd.img-4.4.0-21-generic' is not an ELF object"
Ignoring to load the following file since it doesn't look like a valid Marble plugin: "/boot/vmlinuz-4.4.0-21-generic"
Reason: "'/boot/vmlinuz-4.4.0-21-generic' is not an ELF object"
Segmentation fault (core dumped)
我是否遗漏了什么,除了 libmarblewidget-qt5.so.22 之外,我还应该拥有其他东西吗?
Marble 需要超过 libmarblewidget-qt5.so
到 运行 才能正常使用。至少你需要你想要显示的地图主题的数据,通常还需要一些插件。编译 Marble 后查看安装文件夹 (CMAKE_INSTALL_PREFIX
)。你会在例如lib64/marble/
和 share/marble/data
.
插件和数据的路径被编译到 libmarblewidget-qt5.so
,但可以在 运行 时更改。为此,请使用 MarbleDirs::setMarbleDataPath()
和 MarbleDirs::setMarblePluginPath()
.
总之,你必须
- 将全部或部分插件发送到您选择的文件夹
- 致电
MarbleDirs::setMarblePluginPath("/your/plugins/install/folder");
- 将全部或部分数据发送到您选择的另一个文件夹
- 致电
MarbleDirs::setMarbleDataPath("/your/data/install/folder");
你得到的输出(也可能是段错误)是因为编译的插件路径在目标系统上不存在,因此 Marble 的插件管理器在 /
中搜索并尝试加载它找到的文件那里。