2013-02-19 44 views

回答

1

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

安装过程还应创建可在自己的应用程序中使用的库文件。将它们复制到该文件夹​​的/ usr /地方,你可以按照这样的事情:

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

然后你就可以按照下面的设置基本的应用程序: http://techbase.kde.org/Projects/Marble/MarbleCPlusPlus

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

1

编辑您应该首先遵循cmake的说明操作:http://techbase.kde.org/Projects/Marble/MacCompiling

您可能需要修改的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部署应用程序的Qt页面(http://qt-project.org/doc/qt-4.8/deployment-mac.html)有关如何执行此操作的更广泛的指南,但基本上,您只需使用install_name_tool来告知库现在的位置。如果您使用otool来检查其状态,你会得到这样的:

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 ...)是一个问题,因为这不是图书馆的当前位置。您可以将其更改为:

kagutsuchi$ sudo install_name_tool -id /usr/local/lib/marble/libmarblewidget.15.dylib /usr/local/lib/marble/libmarblewidget.15.dylib 

after -id之后的参数是新标识符。接下来的参数是你正在修改的文件,所以你也可以这样做:

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目录/大理石等等他们知道在哪里寻找libmarblewidget.15。dylib,再次install_name_tool:

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 

您应该能够使用相同的值/大理石/建设/ DIR用于固定libmarblewidget.15.dylib工作。

这应该都可以。如果您使用otool -L检查这些文件,他们现在应该在图书馆的正确位置查找。你也应该能够得到你的Qt代码来编译,只要你的.pro文件中有正确的INCLUDEPATH和LIBS东西。

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