[Pythonmac-SIG] Weirdness with ld/PyQt-Mac build

Bob Ippolito bob at redivi.com
Wed Mar 9 05:24:18 CET 2005


On Mar 8, 2005, at 11:00 PM, Kevin Walzer wrote:

> I'm working on a new build of PyQt-Mac. Everything seemed to build fine
> (Qt 3.3.4, latest versions of QScintilla, SIP, and PyQt), and install
> without incident. However, PyQt applications no longer launch: it seems
> they don't see libqscintilla. Here's a typical message:
>
> Contents/MacOS/Eric 3 can't open library: libqscintilla.5.dylib  (No
> such file or directory, errno = 2)
>
> This is puzzling because that library is correctly installed in
> /Developer/qt/lib, which is where it should be. So I don't see why 
> these
> other apps can't see it.
>
> Looking at the logs from building PyQt, I ran across this strange 
> warning:
>
> ld: warning -L: directory name
> (/Users/kevin/Desktop/qt-mac-free-3.3.4-shared/lib) does not exist
>
> The directory that "does not exist" is the build directory for Qt. 
> After
> ~ building Qt, I moved the build folder to /Developer and renamed it 
> qt.
> Then I began building PyQt and the other bits.
>
> I'm pretty sure that these other apps think that libqscintilla.dylib
> should be in /Users/kevin/Desktop/qt-mac-free-3.3.4-shared/lib. But 
> why?
> ~ What difference does it make, especially when I have $QTDIR set in my
> path to point to /Developer/qt? And if this is a problem, how do I fix
> it (short of rebuilding Qt in /Developer/qt--groan...)

The problem here is that the Qt developers did a poor job of porting to 
the Mac and don't set the proper install_name on these libraries.  You 
will need to run install_name_tool over them after putting them in the 
bundle.  Better yet, run macho_standalone from py2app svn on the app.

-bob



More information about the Pythonmac-SIG mailing list