Important: Please read the Qt Code of Conduct -

Library not found on Mac OS

  • Hello everyone,

    I'm facing a new problem with my project and I have trouble to solve it.

    I have an application that runs on Windows, and I have successfully compile it for Mac OS. The application starts but it catches me an exception "file not found: RecomputeDimBlock.tx".
    This exception is launched from an ODA function (ODA is an external lib used for this project).
    After some research I found that this function search the library into

    I placed the library into this folder but it still doesn't detect it...
    I have try to follow these steps on this thread : but it still not find the lib.

    And then I have try with the command macdeploy and I have got this error :
    Error: no file at "/isr/lib/libMdCore.1.dylib"
    Error: no file at "/isr/lib/libMdWidget.1.dylib"
    Error: no file at "/isr/lib/libMdModels.1.dylib"

    that is normal because those lib are in my debug folder, why does he looking for those lib here ?

    Thanks in advance for your help !

  • Lifetime Qt Champion


    Call otool -L on these libraries to get the shared lib informations.

  • Here is the output

    	@loaderpath/RecomputeDimBlock.tx (compatibility version 0.0.0, current version 0.0.0)
    	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
    	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1404.0.0)
    	libTD_Db.dylib (compatibility version 0.0.0, current version 0.0.0)
    	libTD_DbRoot.dylib (compatibility version 0.0.0, current version 0.0.0)
    	libTD_Gi.dylib (compatibility version 0.0.0, current version 0.0.0)
    	libTD_SpatialIndex.dylib (compatibility version 0.0.0, current version 0.0.0)
    	libTD_Ge.dylib (compatibility version 0.0.0, current version 0.0.0)
    	libsisl.dylib (compatibility version 0.0.0, current version 0.0.0)
    	libTD_Root.dylib (compatibility version 0.0.0, current version 0.0.0)
    	libTD_Alloc.dylib (compatibility version 0.0.0, current version 0.0.0)
    	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
    	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1)

    I have checked, every lib listed are well placed except libSystem.B.dylib, which I cannot find on the Mac.

  • Lifetime Qt Champion

    What version of Qt are you using ?

    How did you call macdeployqt ? Also where did you call if from ?

    What version of OS X are you using ?

  • I use Qt 5.7. I called macdeploy like that :


    and I the output is :

    ERROR: no file at "/usr/lib/libMdCore.1.dylib"
    ERROR: no file at "/usr/lib/libMdWidgets.1.dylib"
    ERROR: no file at "/usr/lib/libMdModels.1.dylib"

    I call it from my .app directory.

    I have tried to call it with -verbose=3 and here is the output :

    I'm using OS X 10.11.5

  • Lifetime Qt Champion

    Ok try with:


    QMAKE_LFLAGS_SONAME = -Wl,-install_name,@rpath/

    to your libraries .pro file


    QMAKE_RPATHDIR += /path_your_libs_dir/

    to your application .pro file

  • So, I tried that but I still got the same error with macdeploy and the same exception in my app. Maybe I did it wrong :
    I add QMAKE_FLAGS_SONAME = -Wl, -install_name, @rpath/
    and in my app .pro : DEPENDPATH += ../debug

    I have tried to change the first one into QMAKE_FLAGS_SONAME = -Wl, -install_name, ../debug/ but still the same thing.

    The exception is about RecomputeDimBlock.tx, which is not a lib from me, so I can't apply anything to it

  • Lifetime Qt Champion

    Why DEPENDPATH ? It's not the same thing as QMAKE_RPATHDIR.

    Also, I'd rather try with the full path using the OUT_PWD variable with QMAKE_RPATHDIR

  • I just copy/paste the wrong line, I have tested with QMAKE_DIRPATH.
    It didn't change with OUT_PWD.
    Maybe there is a thing to do with command install_name_tool on all library ? I will take a look on this trail

  • Lifetime Qt Champion

    Again, it's not QMAKE_DIRPATH, it's QMAKE_RPATHDIR

  • erf... I should go back to school and learn to read again !
    so now I have : QMAKE_RPATHDIR=OUT_PWD/../debug
    but, nothing has changed

  • Lifetime Qt Champion

    Did you forgot the double $ before OUT_PWD?

  • Oh... Yes... It explains why it didn't work !
    The command macdeploy now works fine ! A lot a thing appeared in the .app. But the .tx is still not detected even after copying it on the right directory

  • Lifetime Qt Champion

    Can you remind me what these .tx files are ?

  • In my case .tx is a lib provided by ODA library.
    When my app start, I use a function "loadapp" from ODA, to load my .tx. After debugging it seams that this function is looking for the tx into <>/Contents/MacOS directory, so I placed my lib here but it still doesn't detect it

  • Lifetime Qt Champion

    macdeployqt won't handle them because it currently only targets .framework and .dylib.

    If we want to nitpick, putting "plugin" in the MacOS folder is wrong from a bundle point of view.

    You have to write a script that copies these .tx file at the right place and call install_name_tool on them to update the paths to all their dependencies (excluding the system libraries)

  • ok so if I understood correctly, I have to write a script that first build my .app, then copy the .tx into MacOS and finally apply install_name_tool ?

  • Lifetime Qt Champion

    Not necessarily. I was more thinking about a post-macdeployqt script that would handle the .tx files.

  • ok, given that I'm an intern and my internship will end next week, I prefer writing a bash script that makes everything, that will be easier for my workmate in the future.
    Is there anyway to tell Qt that it has to call this script after compiling ?

  • Lifetime Qt Champion

    What do you mean by everything ? Run macdeployqt or build your application + macdeployqt + .tx deployment ?

  • Yes, after compiling, the script calls macdeployqt, and install every tx properly, the application should work after that (I hope).
    For the moment I just call macdeployqt and copy every tx into MacOS.

  • Lifetime Qt Champion

    It's been a long time since I've done this but IIRC you should be able to do that adding a custom target.

    See qmake's adding custom targets documentation.

  • Thanks for your help ! I will take a look a that, and post another thread if I have a lot of problems.

Log in to reply