[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    [PyKDE] SIP: Including a static C++ library
From:       Jahn_Otto_Næsgaard_Andersen <jotto () jotto ! no>
Date:       2004-01-25 14:36:05
Message-ID: 000001c3e350$9340eb60$6800a8c0 () jottium
[Download RAW message or body]


Hi,

I have a static (.a) C++ library. I have written a SIP file for one of
those classes:

%Module HoloLib

class Bird
{
%TypeHeaderCode
#include "bird.h"
%End

  public:
    Bird(const char *);


};

I SIP this file and then compile and link the resulting cpp files with:

g++ -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -pipe -fPIC -O2 -Wall -W
-D_REENTRANT -c -I.. -I. -I/usr/local/include/python2.3
-I/home/jotto/work/hololib/src   sipHoloLibcmodule.cpp
g++ -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -pipe -fPIC -O2 -Wall -W
-D_REENTRANT -c -I.. -I. -I/usr/local/include/python2.3
-I/home/jotto/work/hololib/src   sipHoloLibBird.cpp
g++ -shared -Wl,-rpath,/usr/lib/qt-x11-free-3.2.3/lib
-L/usr/local/lib/python2.3/site-packages
-L/home/jotto/work/hololib/build -lHoloLib  -o hololib.so *.o 

The static library, libHoloLib.a, is located in
/home/jotto/work/hololib/build. The include files are located in
/home/jotto/work/hololib/src.

The resulting hololib.so library is compiled without errors. I then try
to copy it into /usr/local/lib/python2.3/site-packages and try to load
it in python, but I'm getting a

>>> from hololib import *
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: /usr/local/lib/python2.3/site-packages/hololib.so:
undefined symbol: _ZN4BirdC1EPKc

According to c++filt, the _ZN4BirdC1EPKc symbol is
Bird::Bird[in-charge](char const*)


It looks to me like the -lHoloLib linker option doesn't link in
everything I need in libHoloLib.a. The size of libhololib.so is also
very small compared to libHoloLib.so: 9685 bytes compared to 294570.

I have also tried to use the -E option when linking, with the same
result.


Any suggestions?


I am using SIP 4.0rc2 on Linux Redhat 8.0, Qt 3.2.0, gcc 3.2.


Thanks!

Jahn Otto



_______________________________________________
PyKDE mailing list    PyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic