设置 Marble 以使用 Qt

Posted

技术标签:

【中文标题】设置 Marble 以使用 Qt【英文标题】:setting up Marble to work with Qt 【发布时间】:2015-11-11 17:13:35 【问题描述】:

我正在尝试设置 Marble 以在 OSX 上使用 Qt 5.5。我对链接等细节不是很有经验,我认为这导致了我遇到的问题。

问题:我是否搞砸了“marble”安装,或者这是一个容易解决的链接问题?

Qt 5.5 安装在运行 OSX 10.9.5 的系统上的我的用户目录中(使用 Qt 的网络安装程序)。它工作正常。我按照 Marble 网站上的 instructions 使用(我相信)适当的 Qt 标志从源代码进行克隆、构建和安装。这似乎没有问题。当我尝试构建列出here 的简单测试应用程序时,#include <marble/MarbleWidget.h> 行给出了“找不到文件”错误。

安装后我得到了以下结果:

我的根用户文件夹中的“大理石”目录

“Marble.app”文件以及 bin 和包含目录中的各种其他 marble 相关文件。但是 Marble.app 在启动时会出现以下错误:

Dyld 错误消息:库未加载: @rpath/QtCore.framework/Versions/5/QtCore 引用自: /usr/local/Marble.app/Contents/MacOS/marble-qt 原因:图像不 找到了

二进制图像: 0x7fff6a1f9000 - 0x7fff6a22c817 dyld (239.4) /usr/lib/dyld

【问题讨论】:

【参考方案1】:

所以一个半解决方案:我使用了 Qt Creator“添加库”功能并最终在 .pro 文件中添加了以下内容。由于对话框不允许浏览“usr/local/”,我不得不粘贴到 lib 的链接。此外,虽然我尝试链接到 lib 别名(“libmarblewidget-qt5.dylib”),但使用的是实际的 lib 名称。

macx: LIBS += -L$$PWD/../../../../../usr/local/lib/ -lmarblewidget-qt5.0.21.80

INCLUDEPATH += $$PWD/../../../../../usr/local/include
DEPENDPATH += $$PWD/../../../../../usr/local/include

我不明白这个$$PWD/../../../../../ 业务是什么。

但它有效,我可以在我的问题中的链接处运行示例代码。

我希望这个安装/构建的东西不是那么该死的神秘。我已经花费了无数个小时来尝试设置 - 真的很享受探索这些东西的乐趣,我不能说我真的从中学到了很多东西。


更新

所以我清除了“$$PWD”的废话和文字库名称,它就可以工作了。不确定它有什么不同 - 但你去吧。

macx: LIBS += -L/usr/local/lib/ -lmarblewidget-qt5

INCLUDEPATH +=/usr/local/include
DEPENDPATH +=/usr/local/include

【讨论】:

【参考方案2】:

要么构建有问题,要么您需要安装不同版本的 Qt 来运行它。通常,应用程序会在应用程序本身中包含它需要的 Qt 库。如果它不在那里,它将在您的 Mac 中搜索它。该消息说在任何一个地方都找不到 QtCore。如果您查看 Google 的 Google 地球,您可以看到这些库的存储位置。您还可以将 QtCore 的一个版本复制到您的 Marble 中,看看它是否可以工作。

【讨论】:

以上是关于设置 Marble 以使用 Qt的主要内容,如果未能解决你的问题,请参考以下文章

qt串口设置停止位出现

设置Qt位置以从本地osm服务器进行查询

使用 Qt 编译第三方库

qt:如何使用 QPropertyAnimation 为子 QPushButton 的透明度设置动画?

如何在 Qt 中使用 QFileSystemModel 设置文本颜色 QTableView?

Qt设置权限不设置权限