Help 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 building, linking and such and I think that is causing the problem I am having.

    Question: Did I screw up the 'marble` install and if so, can someone outline the steps to clean and install correctly.

    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

    In my /usr/loca/ directory there is a "Marble.app" file along with various other marble related files in the bin and include directories. However the Marble.app gives the error below on launch,, my "include" doesn't work as noted, and the "libMarbleWidgetPlugin.so" plugin isn't recognized when it's dropped into the plugin directory.

    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


  • Lifetime Qt Champion

    Hi,

    Did you call macdeployqt on Marble.app ?



  • @SGaist

    Did you call macdeployqt on Marble.app ?

    The "Marble.app" is built by cmake – so, no I just used the cmd in the instructions I linked to.

    I am actually more concerned about just being able to use the marbleWidget in my own projects – and since my #include statement fails, I must not have set things up correctly.


  • Lifetime Qt Champion

    Sorry, I misunderstood your problem.

    First thing: did you call make install ? If so you should have everything under the /usr/local/ folder



  • @SGaist

    Yes I followed the instructions (below) and it all proceeded without error. It appears that lots of marble related files (headers, etc) are in various directories under /usr/local/. I don't know how to link to them.

    mkdir -p ~/marble/build
    cd ~/marble/build
    cmake -DCMAKE_BUILD_TYPE=Release -DWITH_KF5=FALSE -DCMAKE_INSTALL_PREFIX=/usr ~/marble/sources
    make
    sudo make install

  • Lifetime Qt Champion

    You can either use Qt Creator's Add Library feature or write it by hand in your .pro file.

    INCLUDEPATH += /usr/local/include
    LIBS += \
        -L/usr/local/lib \
        -lmarble
    

    I don't know the exact name of the library but it's probable something like that



  • @SGaist

    Thanks. I used the "add Library" function and ended up with the following additions to the .pro file. I had to past 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
    

    But it worked!

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

    <rantish> 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. </rantish>

    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

  • Lifetime Qt Champion

    Good !

    By the way, you have now the "Topic Tool" button to mark the thread as solved, no need to change the title anymore :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.