Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. QtAssistant inside own Application bundle

QtAssistant inside own Application bundle

Scheduled Pinned Locked Moved Solved Qt Creator and other tools
3 Posts 1 Posters 915 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    koeniee
    wrote on last edited by koeniee
    #1

    Hi

    I am trying to get my crossplatform application to also bundle the QtAssistant for Mac, Linux and Windows.

    The QtAssistant in my application works fine under Linux and Windows, but under Mac it isn't starting.
    I used the version delivered in Qt 5.7, but it crashes immediately the error is:

    Library not loaded QtHelp
    Reason: image not found

    But the QtHelp library is available in the Frameworks folder inside the QtAssistant.app bundle.

    I get the same error when I compiled my own version of the QtAssistant and used 'macdeployqt' to fix all the dependencies.
    Is there someone who can help me to fix this problem?

    Kind regards,

    Koen

    1 Reply Last reply
    0
    • K Offline
      K Offline
      koeniee
      wrote on last edited by
      #2

      Nevermind, reinstalling Qt 5.7.0 fixed the problem for me.
      I guess the QtHelp library was corrupt or something.

      Although it would be nice if only the Assistant executable could be in the bundle instead of the complete Assistant bundle.
      Because then there are two Framework folders containing Qt Libraries.
      Anyone know's how to do that?

      1 Reply Last reply
      0
      • K Offline
        K Offline
        koeniee
        wrote on last edited by koeniee
        #3

        This is the guide to get the Assitant as a executable instead of a full bundle inside your own application bundle:

        1. Copy the Assistant executable in your own Application bundle in the MacOs folder.

        2. Change the rpath to link to the Framework directory:
          install_name_tool -add_rpath '@loader_path/../Frameworks' YOUR_APPLICATION.app/Contents/MacOS/Assistant

        3. Run the macdeployqt on your Application but also with this command:
          macdeployqt YOUR_APPLICATION.app -dmg -always-overwrite -executable=YOUR_APPLICATION.app/Contents/MacOS/Assistant

        Note: The -dmg tag is optional, please test it first without the parameter.

        1. Please make sure the Frameworks directory contains the following files:
                @rpath/QtHelp.framework/Versions/5/QtHelp
                @rpath/QtWidgets.framework/Versions/5/QtWidgets
                @rpath/QtGui.framework/Versions/5/QtGui 
                @rpath/QtCore.framework/Versions/5/QtCore
                /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration 
                /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
                @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport
                @rpath/QtNetwork.framework/Versions/5/QtNetwork 
                @rpath/QtSql.framework/Versions/5/QtSql 
                /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL 
                /System/Library/Frameworks/AGL.framework/Versions/A/AGL 
                /usr/lib/libc++.1.dylib 
                /usr/lib/libSystem.B.dylib 
        
        
        1. You can check where the rpath is leading with the following command:
          otool -l YOUR_APPLICATION.app/Contents/MacOs/Assistant

        2. Make sure it returns this item:

        Load command 28
                  cmd LC_RPATH
              cmdsize 40
                 path @loader_path/../Frameworks (offset 12)
        
        1. It's possible to have multiple LC_RPATH, so don't worry if there are also others.
        1 Reply Last reply
        0

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved