Hi,

> ./testgraphical.shell: line 4: 59742 Trace/BPT trap: 5
> DYLD_LIBRARY_PATH=/Users/marko/projects/TestGraphical/build/lib/./:/opt/local/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}
> "/Users/marko/projects/TestGraphical/build/src/testgraphical.app/Contents/MacOS/testgraphical"
> "$@"

That's your problem right there: You're setting DYLD_LIBRARY_PATH. This is a 
common habit people coming from Linux have, expecting DYLD_LIBRARY_PATH to 
behave like LD_LIBRARY_PATH. It doesn't. Please don't set it unless you 
understand the implications it has (and yes, what you're seeing is actually 
expected behavior when setting it). Use DYLD_FALLBACK_LIBRARY_PATH instead, or 
better, none of those variables at all, because they are often not necessary. 
Libraries on OS X a typically referenced using absolute paths and if your 
binary correctly contains those absolute paths, DYLD_* variables are 
unnecessary. Please see the manpage for dyld(1) for more information.

> So, does this mean, that a system framework tries to use a library supplied
> by MacPorts?

Yes, because that's what DYLD_LIBRARY_PATH does – it forces the loader to 
ignore the path but the basename in a binary. That's really the only way a 
system framework can "use" a macports library.


> This is what otool tells me:
> —
> $ otool -L testgraphical
> testgraphical:
>       /opt/local/lib/libkdeui.5.dylib (compatibility version 5.0.0, current
>       version 5.12.2)
>       
> /opt/local/Library/Frameworks/QtDeclarative.framework/Versions/4/QtDeclarative
>       (compatibility version 4.8.0, current version 4.8.5)
>       /opt/local/lib/libkdecore.5.dylib (compatibility version 5.0.0, current
>       version 5.12.2)
>       /opt/local/Library/Frameworks/QtDBus.framework/Versions/4/QtDBus
>       (compatibility version 4.8.0, current version 4.8.5)
>       /opt/local/Library/Frameworks/QtCore.framework/Versions/4/QtCore
>       (compatibility version 4.8.0, current version 4.8.5)
>       /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon 
> (compatibility
>       version 2.0.0, current version 157.0.0)
>       /opt/local/Library/Frameworks/QtGui.framework/Versions/4/QtGui
>       (compatibility version 4.8.0, current version 4.8.5)
>       /opt/local/Library/Frameworks/QtSvg.framework/Versions/4/QtSvg
>       (compatibility version 4.8.0, current version 4.8.5)
>       /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version
>       120.0.0)
>       /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
>       1197.1.1)

That doesn't contain any non-absolute paths, you won't need DYLD_LIBRARY_PATH. 
Just don't set it and you'll be fine.

-- 
Clemens Lang
_______________________________________________
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to