Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

OSX Pre-Built Binaries - missing dylibs?



  • I've installed the pre-built Qt 5.12.4 binaries through the qt-unified-mac-x64-3.1.1-online application. However I do not see any dylib files in the lib directory. I need to redistribute the dynamic libraries but all I see are *.a static libraries. I don't see any option to install dynamic libraries during the installation process either. Am I missing something?


  • Lifetime Qt Champion

    Hi,

    Yes you are. The pre-built packages provides frameworks in that folder not "naked" .dylib files.



  • Hmm. I am including all of the pre-built the frameworks in my bundle. My application is running on my build machine after configuring CMakeLists.txt to point CMAKE_PREFIX_PATH to the directory containing qmake, and finding all components (Widgets, OpenGL, Core, and Gui). It crashes after installing on an OSX test machine.

    Is there more that's needed than including the frameworks in my bundle?

    The system report indicates a problem in the Core framework.

    0 libsystem_kernel.dylib 0x00007fff685342c6 __pthread_kill + 10
    1 libsystem_pthread.dylib 0x00007fff685efbf1 pthread_kill + 284
    2 libsystem_c.dylib 0x00007fff6849e6a6 abort + 127
    3 org.qt-project.QtCore 0x00000001037a96c9 0x103791000 + 100041
    4 org.qt-project.QtCore 0x00000001037aae14 QMessageLogger::fatal(char const*, ...) const + 202
    5 org.qt-project.QtGui 0x0000000103274a59 QGuiApplicationPrivate::createPlatformIntegration() + 7321
    6 org.qt-project.QtGui 0x0000000103274a7b QGuiApplicationPrivate::createEventDispatcher() + 27
    7 org.qt-project.QtCore 0x00000001039792df QCoreApplicationPrivate::init() + 1567
    8 org.qt-project.QtGui 0x000000010326fd99 QGuiApplicationPrivate::init() + 57
    9 org.qt-project.QtWidgets 0x0000000102cad00a QApplicationPrivate::init() + 26
    10 0x00000001016335d8 main + 136
    11 libdyld.dylib 0x00007fff683f93d5 start + 1

    otool -L <myApplication> returns the following. All libraries and frameworks are present in the bundle.

    @rpath/librender.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libparams.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libjpeg.9.dylib (compatibility version 12.0.0, current version 12.0.0)
    @rpath/libGLEW.2.0.0.dylib (compatibility version 2.0.0, current version 2.0.0)
    @rpath/libtiff.5.dylib (compatibility version 8.0.0, current version 8.5.0)
    @rpath/libgeotiff.2.dylib (compatibility version 4.0.0, current version 4.2.0)
    @rpath/libassimp.3.3.1.dylib (compatibility version 3.0.0, current version 3.3.1)
    @rpath/QtOpenGL.framework/Versions/5/QtOpenGL (compatibility version 5.12.0, current version 5.12.4)
    @rpath/libpython2.7.dylib (compatibility version 2.7.0, current version 2.7.0)
    /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 822.37.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1454.93.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 22.0.0)
    @rpath/libvdc.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libwasp.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/libcommon.dylib (compatibility version 0.0.0, current version 0.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1454.93.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
    @rpath/libnetcdf.11.dylib (compatibility version 12.0.0, current version 12.4.0)
    @rpath/libudunits2.0.dylib (compatibility version 2.0.0, current version 2.0.0)
    @rpath/libproj.9.dylib (compatibility version 11.0.0, current version 11.0.0)
    /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libexpat.1.dylib (compatibility version 7.0.0, current version 8.0.0)
    @rpath/libftgl.2.1.3.dylib (compatibility version 4.0.0, current version 4.3.0)
    @rpath/libfreetype.6.dylib (compatibility version 20.0.0, current version 20.0.0)
    /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    @rpath/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.12.0, current version 5.12.4)
    @rpath/QtGui.framework/Versions/5/QtGui (compatibility version 5.12.0, current version 5.12.4)
    @rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.12.0, current version 5.12.4)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)

  • Lifetime Qt Champion

    Qt provides the macdeployqt helper that will prepare the bundle for you. You should give it a try.



  • Thanks SGaist.

    Our build system is complex and I'm trying to modify it as little as possible. I'll look into adding macdeployqt, linuxdeployqt, and windeployqt to our system as a last resort.


  • Lifetime Qt Champion

    Frameworks usually go in the the Frameworks folder that is one level higher than the executable path. Update your install_name_tool commands to take that into account.


Log in to reply