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

Reply via email to