On 03/08/2012 09:23 AM, Neal Becker wrote:
Is there a version of cython.py, pyext.py that will work with c++?I asked this question some time ago, but never got an answer. I tried the following code, but it doesn't work correctly. If the commented lines are uncommented, the gcc command is totally mangled. Although it did build my 1 test extension OK, I didn't use any libstdc++ - I suspect it won't link correctly in general because it doesn't seem to treat the code as c++ (treats it as c code). cyenv = Environment(PYEXT_USE_DISTUTILS=True) cyenv.Tool("pyext") cyenv.Tool("cython") import numpy cyenv.Append(PYEXTINCPATH=[numpy.get_include()]) cyenv.Replace(CYTHONFLAGS=['--cplus']) #cyenv.Replace(CXXFILESUFFIX='.cpp') #cyenv.Replace(CYTHONCFILESUFFIX='.cpp')
I don't know anything about writing c/c++ code with Python. I have plenty of experience with each, but not together.
But the usual C++ answer is to use an extern "C" declaration for any function you need to be visible to the outside world. It prevents the usual C++ name mangling.
(It therefore also prevents function overloading and can't generally be used on class member functions)
-- DaveA -- http://mail.python.org/mailman/listinfo/python-list
