It is mandatory to link C++ code against -lstdc++ -lm
when creating an extension.
distutils does not do this in 2.1.1
Here is a setup.py for Python CXX that works around
the problem, but it would be better for distutils to
understand enough about C++ to do the right thing.
THen the code for other compilers could be added. But
GCC is important enough to do first.
You can get the CXX sources from
http://sourceforge.net/projects/cxx/
from distutils.core import setup, Extension
if os.name == 'posix':
CXX_libraries = ['stdc++','m']
else:
CXX_libraries = []
setup(name="pycxx_demo", version="1.0",
ext_modules=
[Extension(
"example",
sources = [
"Demo/example.cxx",
"Demo/python.cxx",
"Demo/range.cxx",
"Demo/rangetest.cxx",
"Src/cxx_extensions.cxx",
"Src/cxxextensions.c",
"Src/cxxsupport.cxx",
"Src/IndirectPythonInterface.cxx" ],
include_dirs = [ ".", "Demo" ],
libraries = CXX_libraries
)
]
)
|