首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在OSX上安装KDE Marble作为库?

如何在OSX上安装KDE Marble作为库?
EN

Stack Overflow用户
提问于 2013-02-19 23:22:14
回答 2查看 1K关注 0票数 3

我一直在考虑在OSX上的一个应用程序中使用KDE's MarbleWidget。但是,位于以下位置的说明:http://marble.kde.org/sources.php似乎只是构建并安装marble.app。我还不知道如何在/usr/local.下安装includes和libs

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-20 00:35:32

我只能给出Linux版本的建议,但我想它是类似的。

安装过程还应创建可在您自己的应用程序中使用的库文件。要将它们复制到/usr/local文件夹,您可以执行如下操作:

http://code.google.com/p/tonatiuh/wiki/InstallingMarbleForLinux

然后,您可以按照以下步骤设置基本应用程序:http://techbase.kde.org/Projects/Marble/MarbleCPlusPlus

基本上,您必须找到库文件并复制粘贴到正确的目录。希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2013-03-26 12:24:11

edit您最初应该遵循位于:http://techbase.kde.org/Projects/Marble/MacCompiling的cmake说明

您可能需要修改CMakeLists.txt:确保设置CMAKE_OSX_ARCHITECTURES的两行代码都正确。无论如何,我不得不这么做:将这个变量设置为适用于您的OSX平台的值也是可行的,但似乎cmake足够聪明,可以在默认情况下猜测适当的体系结构。而且在命令行中传递-DCMAKE_OSX_ARCHITECTURES似乎并不起作用。

然后运行make,make install。

以下是需要将哪些文件复制到何处的说明:

https://code.google.com/p/tonatiuh/wiki/InstallingMarbleForMac

在此之后,您需要做一些事情。文件libmarblewidget.15.dylib (您将其复制到/usr/local/lib/marble)需要修复,以便它知道它的位置。关于为OSX (http://qt-project.org/doc/qt-4.8/deployment-mac.html)部署应用程序的Qt页面上有更多关于如何做到这一点的指南,但基本上您只需使用install_name_tool告诉库它现在位于何处。如果你使用otool来检查它的状态,你会得到类似这样的结果:

代码语言:javascript
复制
    kagutsuchi$ otool -L /usr/local/lib/libmarblewidget.15.dylib
    /usr/local/lib/marble/libmarblewidget.15.dylib:
        /marble/build/dir/src/lib/marble/libmarblewidget.15.dylib (compatibility version 15.0.0, current version 0.15.0)
        /Developer/QtSDK/Desktop/Qt/4.8.0/gcc/lib/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.0)
        /Developer/QtSDK/Desktop/Qt/4.8.0/gcc/lib/QtDBus.framework/Versions/4/QtDBus (compatibility version 4.8.0, current version 4.8.0)
        /Developer/QtSDK/Desktop/Qt/4.8.0/gcc/lib/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.0)
        /Developer/QtSDK/Desktop/Qt/4.8.0/gcc/lib/QtXml.framework/Versions/4/QtXml (compatibility version 4.8.0, current version 4.8.0)
        /Developer/QtSDK/Desktop/Qt/4.8.0/gcc/lib/QtSvg.framework/Versions/4/QtSvg (compatibility version 4.8.0, current version 4.8.0)
        /Developer/QtSDK/Desktop/Qt/4.8.0/gcc/lib/QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.8.0, current version 4.8.0)
        /Developer/QtSDK/Desktop/Qt/4.8.0/gcc/lib/QtScript.framework/Versions/4/QtScript (compatibility version 4.8.0, current version 4.8.0)
        /Developer/QtSDK/Desktop/Qt/4.8.0/gcc/lib/QtWebKit.framework/Versions/4/QtWebKit (compatibility version 4.8.0, current version 4.8.0)
        /Developer/QtSDK/Desktop/Qt/4.8.0/gcc/lib/QtDeclarative.framework/Versions/4/QtDeclarative (compatibility version 4.8.0, current version 4.8.0)
        /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 41.0.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 635.15.0)

第二行(/marble/build/dir/src/lib/marble/libmarblewidget.15.dylib ...)是一个问题,因为这不是库的当前位置。您可以使用以下命令对其进行更改:

代码语言:javascript
复制
    kagutsuchi$ sudo install_name_tool -id /usr/local/lib/marble/libmarblewidget.15.dylib /usr/local/lib/marble/libmarblewidget.15.dylib

-id后面的参数是新的标识符。下一个参数是您正在修改的文件,因此您也可以这样做:

代码语言:javascript
复制
    kagutsuchi$ cd /usr/local/lib/marble
    kagutsuchi$ sudo install_name_tool -id /usr/local/lib/marble/libmarblewidget.15.dylib libmarblewidget.15.dylib

在将插件复制到/usr/local/bin/marble之后,您还需要修改插件,以便它们知道在哪里查找libmarblewidget.15.dylib,同样使用install_name_tool:

代码语言:javascript
复制
    kagutsuchi$ cd /usr/local/lib/marble
    kagutsuchi$ for sofile in `ls *.so`; do sudo install_name_tool -change /marble/build/dir/src/marble/build/src/lib/libmarblewidget.15.dylib /usr/local/lib/marble/libmarblewidget.15.dylib $sofile; done

您应该能够对/marble/build/dir使用与修复libmarblewidget.15.dylib相同的值。

这一切都应该行得通。如果你用otool -L检查这些文件,他们现在应该在正确的位置查找库了。如果在.pro文件中有正确的INCLUDEPATH和LIBS内容,您还应该能够编译您的Qt代码。

然而..。我被困在这一点上了。我有我的代码要编译,但当我试图让它运行时,我创建的MarbleWidget没有在正确的位置查找插件。我将发布一个关于插件主题的问题,看看我是否能得到一些帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14961012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档