ImportError when trying to import own C++ module

Jan Drugowitsch jdrugo at gmx.at
Sun Mar 7 22:56:20 CET 2004


Hi everyone!

I am trying to access a C++ class which is wrapped in a Python object from 
another C++ class which is also wrapped in a Python object. I have used the 
following file structure:

AClass.h:
Declaration of AClass
typedef of PyObject containing AClass

AClass.cpp:
Including AClass.h
Implementation of AClass

PyAClass.cpp:
Including AClass.h
Python interface to access AClass

BClass.cpp:
Including AClass.h
Declaration of BClass
Implementation of BClass
Python interface to access BClass

AClass has the methods
unsigned int value() const;  // reading private value
void setValue(const unsiged int);  // setting private value

BClass has the method
unsigned int value(const AClass* aclass) const; // returning aclass->value()

(remember: just a proof-of-concept)

I'm using DistUtils to compile the libraries. AClass.so links AClass.cpp and 
PyAClass.cpp, BClass.so links BClass.cpp and AClass.cpp.
Using AClass in Python works without problems, importing BClass, however, 
gives the following error:

>>> import BClass
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: ./BClass.so: undefined symbol: _ZNK6AClass5valueEv

BClass.so, however, seems to contain that symbol:

% nm BClass.so | grep _ZNK6AClass5valueEv
         U _ZNK6AClass5valueEv

Any ideas what can go wrong there?
Any hints are appreciated

Cheers,
Jan

P.S.: I'm sorry if this question has been asked a thousand times. It is very 
hard to search for in the archives as 'ImportError' is usually a bug in some 
software and no solution is given to resolve it.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: signature
URL: <http://mail.python.org/pipermail/python-list/attachments/20040307/a71bdc96/attachment.pgp>


More information about the Python-list mailing list