[CMake] FindPythonLibs

James Bigler bigler at cs.utah.edu
Wed Feb 22 18:35:45 EST 2006


William A. Hoffman wrote:
> At 03:36 PM 2/22/2006, James Bigler wrote:
>>> CMake should prefer the shared versions of libraries.   Is there a:
>>> /usr/lib/python2.4/config/libpython2.4.so on your machine?
>> No.  I'm using Suse 9.3, GCC 3.3.5, CMake 2.2-patch 3, SWIG version 1.3.21, and python 2.4.
>>
>> ls -l /usr/lib/python2.4/config/
>> total 1682
>> -rw-r--r--  1 root root    4952 2005-03-22 14:51 ccpython.o
>> -rw-r--r--  1 root root    1777 2005-03-22 14:51 config.c
>> -rw-r--r--  1 root root    1191 2005-03-22 14:51 config.c.in
>> -rwxr-xr-x  1 root root    7122 2005-03-22 14:51 install-sh*
>> -rw-r--r--  1 root root 1550468 2005-03-22 14:51 libpython2.4.a
>> -rw-r--r--  1 root root   35789 2005-03-22 14:51 Makefile
>> -rw-r--r--  1 root root   32934 2005-03-22 14:51 Makefile.pre
>> -rw-r--r--  1 root root   32455 2005-03-22 14:51 Makefile.pre.in
>> -rwxr-xr-x  1 root root    7430 2005-03-22 14:51 makesetup*
>> -rw-r--r--  1 root root   17394 2005-03-22 14:51 Setup
>> -rw-r--r--  1 root root     368 2005-03-22 14:51 Setup.config
>> -rw-r--r--  1 root root      41 2005-03-22 14:51 Setup.local
>>
>>> Since CMake uses -L, I am thinking there must not be a linkable .so in
>>> the same directory as the .a.  Where is your shared version of python located?
>> ls -l /usr/lib/libpython2.4.so*
>> lrwxrwxrwx  1 root root      19 2006-01-13 12:18 /usr/lib/libpython2.4.so -> libpython2.4.so.1.0
>>
>> -rw-r--r--  1 root root 1134954 2005-03-22 14:51 /usr/lib/libpython2.4.so.1.0
> 
> Is this a standard install?   On most systems the shared library would also be in the config directory,
> and would be the preferred one to use.   

This is how YaST installed the libraries in SuSE.

# rpm -q --filesbypkg python-devel-2.4-14 | grep libpyth
python-devel              /usr/lib/libpython2.4.so
python-devel              /usr/lib/python2.4/config/libpython2.4.a

However on my ubuntu 5.10 system, there are both shared and static
libraries in config:

$ dpkg -L python2.4-dev | grep libpython
/usr/lib/python2.4/config/libpython2.4.a
/usr/lib/python2.4/config/libpython2.4-pic.a
/usr/lib/python2.4/config/libpython2.4.so
/usr/lib/libpython2.4.so

So it could just be how Suse sets it up, but it is troubling none the less. 
Should FIND_LIBRARY search all the paths for a shared library and then go back 
and look for static ones?

Thanks,
James



More information about the CMake mailing list