有什么想法吗?
http://code.google.com/p/tonatiuh/wiki/InstallingMarbleForLinux
然后您可以按照以下步骤设置基本应用程序: http://techbase.kde.org/Projects/Marble/MarbleCPlusPlus
基本上,您需要定位库文件并复制粘贴到正确的目录中。希望这有所帮助。
编辑:你应该最初遵循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)需要被修复,以便它知道自己的位置。Qt页面关于在OSX上部署应用程序的文档(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)
kagutsuchi$ sudo install_name_tool -id /usr/local/lib/marble/libmarblewidget.15.dylib /usr/local/lib/marble/libmarblewidget.15.dylib
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:
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
您应该能够使用与修复libmarblewidget.15.dylib相同的值来使用/marble/build/dir。
这应该都能正常工作。如果您使用otool -L检查这些文件,它们现在应该在正确的位置查找库。只要您在.pro文件中拥有正确的INCLUDEPATH和LIBS内容,您也应该能够编译您的Qt代码。
但是...我卡在这一点上了。我的代码已经编译过了,但当我尝试运行MarbleWidget时,它创建的插件没有在正确的位置查找。我将发布一个关于插件问题的问题,并看看是否可以得到帮助。