SWIG+Distutils - no harmony?

Martin Bless m.bless at gmx.de
Tue Jan 15 21:26:05 CET 2002


Getting courageous I try building 'example.pyd' 
from the SWIG 'Simple Example' using SWIG and the Distutils.
Looks promising but doesn't succeed. I didn't
modify 'example.c' and 'example.i'.

Problems/questions:

(1) Is 'setup.py' ok?
(2) BEWARE: What's really shocking:
After see (unsuccessful)
  python setup.py build -cmingw32
the original 'example.c' is GONE AND AWAY -
replaced by the wrapper.
(3) What's going wrong?

Martin

Sources und logs following:

>----------<>----------<>----------<
# setup.py
# mb: Is this ok?
import distutils
from distutils.core import setup, Extension
#from distutils.extension import Extension

setup(name = "Example 'Simple' from the SWIG examples",
      version = "2.2",
      ext_modules = [Extension("example", ["example.i"])])

>----------<>----------<>----------<
/* File : example.i */
%module example

extern int    gcd(int x, int y);
extern double Foo;
      
>----------<>----------<>----------<
/* File : example.c */

/* A global variable */
double Foo = 3.0;

/* Compute the greatest common divisor of positive integers */
int gcd(int x, int y) {
  int g;
  g = y;
  while (x > 0) {
    g = x;
    x = y % x;
    y = g;
  }
  return g;
}

>----------<>----------<>----------<
C:\python
Python 2.2 (#28, Dec 21 2001, 12:21:22) [MSC 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

>----------<>----------<>----------<
swig -version

SWIG Version 1.3.10u-20011211-2004
Copyright (c) 1995-1998
University of Utah and the Regents of the University of California
Copyright (c) 1998-2001
University of Chicago

Compiled with CC

>----------<>----------<>----------<
>python setup.py build -cmingw32

running build
running build_ext
building 'example' extension
swigging example.i to example.c
c:\pyext\swig\swig.exe -python -dnone 
  -ISWIG -o example.c example.i
c:\mingw\bin\gcc.exe -mno-cygwin -mdll 
  -O -Wall -IC:\PYTHON22\include 
  -c example.c -o build\temp.win32-2.2\Release\example.o
writing build\temp.win32-2.2\Release\example.def

c:\mingw\bin\gcc.exe -mno-cygwin -mdll -static 
  -s build\temp.win32-2.2\Release\example.o 
  build\temp.win32-2.2\Release\example.def 
  -LC:\PYTHON22\libs -lpython22 
  -o build\lib.win32-2.2\example.pyd

swig: Warning. -dnone option deprecated.

example.c: In function `SWIG_UnpackData':
example.c:363: warning: `uu' might be used uninitialized in this
function
example.c: In function `SWIG_ConvertPtr':
example.c:429: warning: suggest explicit braces to avoid ambiguous
`else'
example.c:432: warning: suggest explicit braces to avoid ambiguous
`else'
example.c:438: warning: suggest explicit braces to avoid ambiguous
`else'
example.c: At top level:
example.c:154: warning: `SWIG_TypeQuery' defined but not used
example.c:385: warning: `SWIG_ConvertPtr' defined but not used
example.c:468: warning: `SWIG_ConvertPacked' defined but not used
example.c:537: warning: `SWIG_MakeShadow' defined but not used
build\temp.win32-2.2\Release\example.o(.text+0xbda):example.c:
undefined reference to `gcd'
build\temp.win32-2.2\Release\example.o(.text+0xc35):example.c:
undefined reference to `Foo'
build\temp.win32-2.2\Release\example.o(.text+0xc6b):example.c:
undefined reference to `Foo'
build\temp.win32-2.2\Release\example.o(.text+0xc71):example.c:
undefined reference to `Foo'
error: command 'gcc' failed with exit status 1

>----------<>----------<>----------<




More information about the Python-list mailing list