qtmarble

setting up Marble to work with Qt


I am trying to set up Marble to work with Qt 5.5 on OSX. I'm not very experienced with the details of linking and such and I think that is causing the problem I am having.

Question: Did I screw up the 'marble` install or is this an easily solved linking issue?

Qt 5.5 is installed in my user directory (using Qt's network installer) on a system running OSX 10.9.5. It works fine. I followed the 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, the #include <marble/MarbleWidget.h> line gives a "file not found" error.

After the install I've ended up with the following:

A "marble" directory in my root user folder

enter image description here

A "Marble.app" file along with various other marble related files in the bin and include directories. However the Marble.app gives the following error on launch:

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

enter image description here


Solution

  • So a semi-solution: I used the Qt Creator "add Library" function and ended up with the following additions to the .pro file. I had to paste in the link to the lib since the dialog doesn't allow browsing of "usr/local/". Also, although I tried to link to the lib alias ("libmarblewidget-qt5.dylib"), the actual lib name is used.

    macx: LIBS += -L$$PWD/../../../../../usr/local/lib/ -lmarblewidget-qt5.0.21.80
    
    INCLUDEPATH += $$PWD/../../../../../usr/local/include
    DEPENDPATH += $$PWD/../../../../../usr/local/include
    

    I don't understand what this $$PWD/../../../../../ business is.

    But it worked and I am able to run the example code at the link in my question.

    I wish this install/build stuff wasn't so damned arcane. I've spent endless hours just trying to get things set up – really sucks the joy out of exploring this stuff and I can't say I really learned much of anything from it.


    Update

    So I cleaned out the "$$PWD" crap and the literal lib name and it works. Not sure what difference it makes – but there you go.

    macx: LIBS += -L/usr/local/lib/ -lmarblewidget-qt5
    
    INCLUDEPATH +=/usr/local/include
    DEPENDPATH +=/usr/local/include