0

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

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

Qt 5.5 安装在运行 OSX 10.9.5 的系统上的我的用户目录中(使用 Qt 的网络安装程序)。它工作正常。我按照 Marble 网站上的说明使用(我相信)适当的 Qt 标志从源代码克隆、构建和安装。这似乎没有问题。当我尝试构建此处列出的简单测试应用程序时,该#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) <7AD43B9B-5CEA-3C7E-9836-A06909F9CA56> /usr/lib/dyld

在此处输入图像描述

4

2 回答 2

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
于 2015-11-13T15:18:09.660 回答
0

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

于 2015-11-11T17:33:16.897 回答