On Fri, May 21, 2010 at 1:05 PM, Brian O'Kennedy <brok...@gmail.com> wrote: > Hi, > I'm wrapping a very simple class using PyPlusPlus. > ---- snip ---- > class testclass > { > public: > static const int a = 99; > }; > ---- /snip ---- > And Py++ exposes the static member with a def_readonly("a", testclass::a ) > call. When I import this module into python I get an undefined symbol for > testclass::a. > ImportError: ./testwrapper.so: undefined symbol: _ZN9testclass1aE > I understand that the static member has no storage and thus boost python > cannot find the address of it. However, I was hoping there is a way to solve > this kind of (common?) problem using Py++ to perhaps generate a getter > function or something similar. How would one do this?
Try to move "a" initialization to a .cpp file. I also suggest you to take a look on Py++ unittests, especially on "statics_tester.py" and "statics_to_be_exported.[c|h]pp" files. They deal with exactly your use case -- Roman Yakovenko C++ Python language binding http://www.language-binding.net/ _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig