Library not found on Mac OS
-
I use Qt 5.7. I called macdeploy like that :
/Users/developpement/Qt/5.7/clang_64/bin/macdeployqt MediaCad.app
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 : http://textup.fr/172668xw
I'm using OS X 10.11.5
-
Ok try with:
Add
QMAKE_LFLAGS_SONAME = -Wl,-install_name,@rpath/
to your libraries .pro file
and
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 += ../debugI 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
-
Why
DEPENDPATH
? It's not the same thing asQMAKE_RPATHDIR
.Also, I'd rather try with the full path using the
OUT_PWD
variable withQMAKE_RPATHDIR
-
Again, it's not
QMAKE_DIRPATH
, it'sQMAKE_RPATHDIR
-
Did you forgot the double $ before
OUT_PWD
? -
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 <myapp.app>/Contents/MacOS directory, so I placed my lib here but it still doesn't detect it -
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)
-
Not necessarily. I was more thinking about a post-macdeployqt script that would handle the .tx files.
-
-
What do you mean by everything ? Run macdeployqt or build your application + macdeployqt + .tx deployment ?
-
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.