我正在尝试从Python代码构建独立的应用程序.目前它只是一个"hello world"计划.我使用Cython编译它以获取.c文件:
"c:\ python34\scripts\cython.exe"--embed hello.py
这很好.然后我尝试编译并链接生成的.c文件,如下所示:
"c:\ mingw32\bin\gcc.exe"-I"c:\ python34\include"-L"c:\ python34\libs"-lpython34 -ohello.exe hello.c
这给了我很多链接错误:
...\cc7PmSei.o:hello.c :(.text + 0xe9):未定义引用`_imp__PyTuple_New'
...\cc7PmSei.o:hello.c :(.text + 0x130):未定义的引用`_imp__PyBytes_FromStringAndSize'
...\cc7PmSei.o:hello.c :(.text + 0x177):未定义对`_imp__PyModule_Create2'的引用
...
...\cc7PmSei.o:hello.c :(.text + 0x12b7):未定义的引用`_imp__PyUnicode_Decode'
...\cc7PmSei.o:hello.c :(.text + 0x12dd):未定义的引用`_imp__PyUnicode_FromStringAndSize'
...\cc7PmSei.o:hello.c :(.text + 0x1303):未定义的引用`_imp__PyBytes_FromStringAndSize'
.../libmingw32.a(main.o):main.c:.text.startup + 0xa7):未定义引用`WinMain @ 16'
collect2.exe:错误:ld返回1退出状态
更多信息:我有Windows 7 Home 64位操作系统.我使用Python 3.4.1 32位,Cython-0.20.1和TDM-GCC 4.7.1 32位.
我做了一些研究.有人说它可能是由例如使用32位C编译器和64位Python引起的.但事实并非如此.其他(http://eli.thegreenplace.net/2008/06/28/compiling-python-extensions-with-distutils-and-mingw/)说我需要创建libpython34.a.但是我的Python版本已经附带了这个文件.
有谁知道我做错了什么?提前致谢.