[Distutils] errors compiling c++ extensions with swig on windows

Christian K. ckkart at hoc.net
Fri Sep 7 03:15:54 CEST 2007


using the following setup file to build a extension  from c++ source on
windows/mingw with swig 1.3.31,

import distutils
from distutils.core import setup, Extension

ext = Extension("_libpyorigin",
                extra_compile_args = ['-w'])

setup(name = "libpyorigin",
      version = "0.1",
      ext_modules = [ext])

I get the following error:

$ python setup.py build_ext --compiler=mingw32
running build_ext
building '_libpyorigin' extension
swigging libpyorigin.i to libpyorigin_wrap.cpp
C:\msys\1.0\local\bin\swig.exe -python -c++ -o libpyorigin_wrap.cpp libpyorigin.i
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -Ic:\Python25\include
-Ic:\Python25\PC -c libpyorigin_wrap.cpp -o
build\temp.win32-2.5\Release\libpyorigin_wrap.o -w
writing build\temp.win32-2.5\Release\_libpyorigin.def
c:\mingw\bin\g++.exe -mno-cygwin -mdll -static --entry _DllMain at 12 --output-lib
build\temp.win32-2.5\Release\lib_libpyorigin.a --def
build\temp.win32-2.5\Release\_libpyorigin.def -s
build\temp.win32-2.5\Release\opjfile.o -Lc:\Python25\libs -Lc:\Python25\PCBuild
-lpython25 -lmsvcr71 -o build\lib.win32-2.5\_libpyorigin.pyd
g++: build\temp.win32-2.5\Release\lib_libpyorigin.a: No such file or directory
error: command 'g++' failed with exit status 1

What is distutils trying to do with that lib_libpyorigin.a? I could not find the
meaning of --output-lib but I suspect g++ is trying to link with that lib but it
 was meant to build it, right? Is this a bug in distutils or did I do seomething

The same works perfectly on linux, btw.

Thanks, Christian

More information about the Distutils-SIG mailing list