2013-02-19 45 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時,並不是在插件的正確位置。我將在插件主題上發佈一個問題,看看我能否得到一些幫助。