[Pythonmac-SIG] with libraries compiled with intel compilers, intel libguide.dylib not included

Dan White dan at chalkie.org.uk
Wed Jun 21 11:35:33 CEST 2006


On 21 Jun 2006, at 09:29, Ronald Oussoren wrote:

>
> On 20-jun-2006, at 23:32, Dan White wrote:
>>
>>
>> what should i rewrite it to be?
>> using
>> install_name_tool -id   ?
>> what would make pyapp automatically copy the library and rewrite  
>> the install_name?
>
> If I understand things correctly the install_name of libguide.dylib  
> is currently just libguide.dylib, whereas it should be /path/to/ 
> libguide.dylib. The install_name is copied into any objects that  
> link to the library (which is what you get to see when you use  
> otool -vL).
>
> If the install_name of a linked-to library points to a library that  
> py2app can find at that location that library will be copied into  
> the application bundle and it's install_name gets rewritten to  
> something relative to the executable in the application bundle.
>
> Now that I think a bit more about this issue, it might be possible  
> to solve this using a py2app recipe. I don't really have time to  
> work on this, even though I'd love to play with the Intel compiler  
> to see if that would speed up Python.

Looks like py2app did manage to pick up the libguilde.dylib and put  
it in Frameworks,
but it did not rewrite the install name:

from the console after double clicking my .app

2006-06-21 12:22:39.222 BioImageXD[26632] BioImageXD Error
2006-06-21 12:22:39.222 BioImageXD[26632] An unexpected error has  
occurred during execution of the main script

ImportError: Failure linking new module: /Users/dan/Desktop/ 
bioimagexdsvn/trunk/dist/BioImageXD.app/Contents/Resources/Python/lib- 
dynload/vtk/libvtkIOPython.so: Library not loaded: libguide.dylib
   Referenced from: /Users/dan/Desktop/bioimagexdsvn/trunk/dist/ 
BioImageXD.app/Contents/MacOS/../Frameworks/libvtkIOPythonD.5.1.dylib
   Reason: image not found

and otool -L  tells me:

white:~/Desktop/bioimagexdsvn/trunk dan$ otool -L /Users/dan/Desktop/ 
bioimagexdsvn/trunk/dist/BioImageXD.app/Contents/Frameworks/ 
libguide.dylib
/Users/dan/Desktop/bioimagexdsvn/trunk/dist/BioImageXD.app/Contents/ 
Frameworks/libguide.dylib:
         /opt/intel/cc/9.1.027/lib/libguide.dylib (compatibility  
version 4.0.0, current version 4.0.0)
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,  
current version 88.1.3)

should be @executable_path/../Frameworks/libguide.dylib
right?

otool -L for the dylib trying to see libguide:

white:~/Desktop/bioimagexdsvn/trunk dan$ otool -L /Users/dan/Desktop/ 
bioimagexdsvn/trunk/dist/BioImageXD.app/Contents/Frameworks/ 
libvtkIOPythonD.5.1.dylib
/Users/dan/Desktop/bioimagexdsvn/trunk/dist/BioImageXD.app/Contents/ 
Frameworks/libvtkIOPythonD.5.1.dylib:
         libvtkIOPythonD.5.1.dylib (compatibility version 0.0.0,  
current version 0.0.0)
         libvtkIO.5.1.dylib (compatibility version 0.0.0, current  
version 0.0.0)
         libvtkFilteringPythonD.5.1.dylib (compatibility version  
0.0.0, current version 0.0.0)
         /System/Library/Frameworks/Python.framework/Versions/2.3/ 
Python (compatibility version 2.3.0, current version 2.3.5)
         libvtkDICOMParser.5.1.dylib (compatibility version 0.0.0,  
current version 0.0.0)
         libvtkpng.5.1.dylib (compatibility version 0.0.0, current  
version 0.0.0)
         libvtktiff.5.1.dylib (compatibility version 0.0.0, current  
version 0.0.0)
         libvtkzlib.5.1.dylib (compatibility version 0.0.0, current  
version 0.0.0)
         libvtkjpeg.5.1.dylib (compatibility version 0.0.0, current  
version 0.0.0)
         libvtkexpat.5.1.dylib (compatibility version 0.0.0, current  
version 0.0.0)
         libvtkMPEG2Encode.5.1.dylib (compatibility version 0.0.0,  
current version 0.0.0)
         libvtkFiltering.5.1.dylib (compatibility version 0.0.0,  
current version 0.0.0)
         libvtkCommonPythonD.5.1.dylib (compatibility version 0.0.0,  
current version 0.0.0)
         libvtkCommon.5.1.dylib (compatibility version 0.0.0, current  
version 0.0.0)
         libvtksys.5.1.dylib (compatibility version 0.0.0, current  
version 0.0.0)
         /System/Library/Frameworks/AppKit.framework/Versions/C/ 
AppKit (compatibility version 45.0.0, current version 824.39.0)
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,  
current version 88.1.5)
         libguide.dylib (compatibility version 4.0.0, current version  
4.0.0)
         /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0,  
current version 7.4.0)
         /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0,  
current version 1.0.0)
         /usr/lib/libmx.A.dylib (compatibility version 1.0.0, current  
version 1.0.0)
white:~/Desktop/bioimagexdsvn/trunk dan$

should all these vtk*.dylib also have
@executable_path/../Frameworks/libvtk*
for their install names once py2app has put them in my .app bundle,
since they are not system libraries, but are ones I have compiled  
with the intel compiler for use in my .app?

Also should libguide.dylib also be listed here as @executable_path/../ 
Frameworks/libguide.dylib not just libguide.dylib?

Dan




Dr. Daniel James White BSc. (Hons.) PhD
Bioimaging Coordinator
Nanoscience Centre and Department of Biological and Environmental  
Sciences
Division of Molecular Recognition
Ambiotica C242
PO Box 35
University of Jyväskylä
Jyväskylä
FIN 40014
Finland

+358 14 260 4183 (work)
+358 468102840 (mobile)
http://www.bioimagexd.org
http://www.chalkie.org.uk
dan at chalkie.org.uk
white at cc.jyu.fi




More information about the Pythonmac-SIG mailing list