设置 Marble 与 Qt 一起工作
setting up Marble to work with Qt
我正在尝试设置 Marble 以在 OSX 上使用 Qt 5.5。我对链接等细节不是很有经验,我认为这是导致我遇到的问题的原因。
问题:我是否搞砸了“marble”安装,或者这是一个容易解决的链接问题?
Qt 5.5 安装在系统 运行 OSX 10.9.5 上我的用户目录中(使用 Qt 的网络安装程序)。它工作正常。我按照 instructions on the Marble site to clone, build and install from source with (I believe) the appropriate Qt flags. That seemed to go without issue. When I try to build the simple test app listed here,#include <marble/MarbleWidget.h>
行给出了 "file not found" 错误。
安装完成后,我得到了以下结果:
我的根用户文件夹中的一个 "marble" 目录
一个 "Marble.app" 文件以及 bin 和 include 目录中的各种其他 marble
相关文件。但是 Marble.app 在启动时给出以下错误:
Dyld Error Message: Library not loaded:
@rpath/QtCore.framework/Versions/5/QtCore Referenced from:
/usr/local/Marble.app/Contents/MacOS/marble-qt Reason: image not
found
Binary Images:
0x7fff6a1f9000 - 0x7fff6a22c817 dyld (239.4) <7AD43B9B-5CEA-3C7E-9836-A06909F9CA56> /usr/lib/dyld
构建有误,或者您需要为 运行 安装不同版本的 Qt。通常,应用程序本身包含它需要的 Qt 库。如果它不在那里,它将在您的 mac 中搜索它。该消息表示在任何一个地方都找不到 QtCore。如果您查看 Google 的 Google 地球内部,您可以看到图书馆的存储位置。您还可以将 QtCore 的一个版本复制到您的 Marble 中,看看它是否可以工作。
这是一个半解决方案:我使用了 Qt Creator "add Library" 函数,并在 .pro 文件中添加了以下内容。我不得不将 link 粘贴到库中,因为对话框不允许浏览 "usr/local/"。另外,虽然我尝试 link 到 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/../../../../../
业务是什么。
但它起作用了,我能够 运行 我问题中 link 处的示例代码。
我希望这个 install/build 东西不是那么该死的神秘。我花了无数的时间来尝试设置东西 – 真的从探索这些东西中吸取了乐趣,我不能说我真的从中学到了很多东西。
更新
所以我清除了“$$PWD”废话和文字库名称,它起作用了。不确定它有什么不同 - 但你去吧。
macx: LIBS += -L/usr/local/lib/ -lmarblewidget-qt5
INCLUDEPATH +=/usr/local/include
DEPENDPATH +=/usr/local/include
我正在尝试设置 Marble 以在 OSX 上使用 Qt 5.5。我对链接等细节不是很有经验,我认为这是导致我遇到的问题的原因。
问题:我是否搞砸了“marble”安装,或者这是一个容易解决的链接问题?
Qt 5.5 安装在系统 运行 OSX 10.9.5 上我的用户目录中(使用 Qt 的网络安装程序)。它工作正常。我按照 instructions on the Marble site to clone, build and install from source with (I believe) the appropriate Qt flags. That seemed to go without issue. When I try to build the simple test app listed here,#include <marble/MarbleWidget.h>
行给出了 "file not found" 错误。
安装完成后,我得到了以下结果:
我的根用户文件夹中的一个 "marble" 目录
一个 "Marble.app" 文件以及 bin 和 include 目录中的各种其他 marble
相关文件。但是 Marble.app 在启动时给出以下错误:
Dyld Error Message: Library not loaded: @rpath/QtCore.framework/Versions/5/QtCore Referenced from: /usr/local/Marble.app/Contents/MacOS/marble-qt Reason: image not found
Binary Images: 0x7fff6a1f9000 - 0x7fff6a22c817 dyld (239.4) <7AD43B9B-5CEA-3C7E-9836-A06909F9CA56> /usr/lib/dyld
构建有误,或者您需要为 运行 安装不同版本的 Qt。通常,应用程序本身包含它需要的 Qt 库。如果它不在那里,它将在您的 mac 中搜索它。该消息表示在任何一个地方都找不到 QtCore。如果您查看 Google 的 Google 地球内部,您可以看到图书馆的存储位置。您还可以将 QtCore 的一个版本复制到您的 Marble 中,看看它是否可以工作。
这是一个半解决方案:我使用了 Qt Creator "add Library" 函数,并在 .pro 文件中添加了以下内容。我不得不将 link 粘贴到库中,因为对话框不允许浏览 "usr/local/"。另外,虽然我尝试 link 到 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/../../../../../
业务是什么。
但它起作用了,我能够 运行 我问题中 link 处的示例代码。
我希望这个 install/build 东西不是那么该死的神秘。我花了无数的时间来尝试设置东西 – 真的从探索这些东西中吸取了乐趣,我不能说我真的从中学到了很多东西。
更新
所以我清除了“$$PWD”废话和文字库名称,它起作用了。不确定它有什么不同 - 但你去吧。
macx: LIBS += -L/usr/local/lib/ -lmarblewidget-qt5
INCLUDEPATH +=/usr/local/include
DEPENDPATH +=/usr/local/include