On Tue, May 14, 2002 at 07:22:52PM -0700, Mathew Yeates wrote: > > Hmmm, I've run across this also. It turned out that I needed to create > a shared library. If the original file is foo.c, compile it to foo.o > then create a shared object called foo.so with ld -shared foo.o -o foo.so. > Then it won't mind the undefined symbol (which gets loaded at run time) > > Mathew
We are creating a shared library, with -shared. Python still won't load a shared library with an undefined symbol in it. Are we doing something dumb? The C++ code contains #define NO_IMPORT_PYGTK #include <pygtk.h> #undef NO_IMPORT_PYGTK and (later, within a canvas item callback) PyGtk_BlockThreads(); PyObject *result = PyEval_CallObject(pycallback, args); PyGtk_UnblockThreads(); When compiled into a shared library, python says ImportError: /u/home3/langer/FE/OOF2/INTEL/oofcppcmodule.so: undefined symbol: _PyGtk_API If I add my own pointer to _PyGtk_API and call the (slightly modified) init_pygtk macro, then it all works. As I said, this feels wrong to me. It looks like there's no harm in calling init_pygtk an extra time, but I'd rather not have to copy names like _PyGtk_API out of the nominally private parts of the header file... -- Steve -- /* EMail: [EMAIL PROTECTED] ------------------ Phone: (301) 975-5423 -- -- WWW: http://math.nist.gov/~SLanger/ ------------ Fax: (301) 990-4127 -- -- Mail: NIST; 100 Bureau Drive -- Stop 8910; Gaithersburg, MD 20899-8910 */ _______________________________________________ pygtk mailing list [EMAIL PROTECTED] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/