Problem with building extension in Python

cornpicker at gmail.com cornpicker at gmail.com
Thu Jul 12 20:25:56 CEST 2007


On Jul 5, 4:33 am, "Gabriel Genellina" <gagsl-... at yahoo.com.ar> wrote:
> En Thu, 05 Jul 2007 05:08:58 -0300, <vedrandeko... at v-programs.com>
> escribió:
>
> > I have already install Microsoft visual studio .NET 2003 and MinGw,
> > when I try to build a extension:
>
> Is this for Python 2.4? I think you can't compile Python 2.5 with VS2003.
>
> > python my_extension_setup.py build ( or install ) , I get an error:
>
> > LINK : fatal error LNK1141: failure during build of exports file
> > error: command '"C:\Program Files\Microsoft Visual Studio .NET
> > 2003\Vc7\bin\link.exe"' failed with exit status 1141.What shoud I
> > do???
>
> Almost surely you got a previous error, making link to fail. Try to
> correct *that* error.
>
> --
> Gabriel Genellina

    Microsoft Visual Studio .NET 2003 Version 7.1 is the correct
version to build extensions for Python 2.5. There is also a Microsoft
Visual Studio .NET 2003 Version 7.0 as well, which is not acceptable
for building extensions. The first release (version 7.0) was purchased
by many, and is relatively easy to find. The following release
(version 7.1) was a minor revision and is very hard to find, but it is
what's necessary for building Python extensions. I hope future Python
releases are built using a more standard compiler.

    I'm posting in this thread because I am running into the same
problem as the original poster, linker error 1141. Here's a summary of
what I've gotten to work properly so far:

Python 2.5, Pyrex, and Microsoft Visual Studio 2003 .NET (version 7.1)
are successfully installed
I have successfully built Pyrex extensions using Distutils
I have successfully imported and ran Pyrex extensions in my Python
code

    The problems occur when I try to include C libraries in my Pyrex
code. Specifically, I need some trig functions found in C's math.h
header files. My .pyx file is as follows:



#
#  Use C math functions
#

def cFunctionTester(float theta):

    import sys

    # Import the native C functions we need
    cdef extern from "math.h":
        double cos(double theta)
        double sin(double theta)

    result[0] = cos(theta)
    result[1] = sin(theta)

    return 5



 I try to build the extension by running my setup.py file from the
command prompt. My setup.py file is presented below:



from distutils.core import setup
from distutils.extension import Extension
from Pyrex.Distutils import build_ext
setup(
  name = "PyrexGuide",
  ext_modules=[
    Extension("cTest", ["cTest.pyx"], libraries = [])
    ],
  cmdclass = {'build_ext': build_ext}
)



I run this code through the command prompt by entering "setup.py
install"   The following error appears:



C:\Python25\Lib\site-packages\Pyrex\Distutils>setup.py install
running install
running build
running build_ext
building 'cTest' extension
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /
nologo /Ox
 /MD /W3 /GX /DNDEBUG -IC:\Python25\include -IC:\Python25\PC /
TccTest.c /Fobuild
\temp.win32-2.5\Release\cTest.obj
cTest.c
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\link.exe /
DLL /nologo
 /INCREMENTAL:NO /LIBPATH:C:\Python25\libs /LIBPATH:C:
\Python25\PCBuild /EXPORT:
initcTest build\temp.win32-2.5\Release\cTest.obj /OUT:build
\lib.win32-2.5\cTest.
pyd /IMPLIB:build\temp.win32-2.5\Release\cTest.lib
LINK : error LNK2001: unresolved external symbol initcTest
build\temp.win32-2.5\Release\cTest.lib : fatal error LNK1120: 1
unresolved exter
nals
LINK : fatal error LNK1141: failure during build of exports file
error: command '"c:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\bin\link
.exe"' failed with exit status 1141

C:\Python25\Lib\site-packages\Pyrex\Distutils>



I do not know what the problem is -- perhaps the linker cannot locate
math.h? I've tried copying the math.h file to a whole bunch of other
directories, but there's still no luck. Any help anyone can provide
would be greatly appreciated.

Joe Stoffa
CornPicker at gmail.com




More information about the Python-list mailing list