从 Cython 代码创建可执行文件

Creating an executable from Cython Code

我正在尝试按照此处的说明在 cython 中创建一个可执行文件: Making an executable in Cython。 但是,我不断收到错误消息“对 'WinMain@16' collect2.exe 的未定义引用,我很想知道这是什么原因。

已编辑:

我目前正在使用以下 Cython 文件执行以下操作:

cpdef primes(int kmax):
cdef int n, k, i
cdef int p[1000]
result = []
if kmax > 1000:
    kmax = 1000
k = 0
n = 2
while k < kmax:
    i = 0
    while i < k and n % p[i] != 0:
        i = i + 1
    if i == k:
        p[k] = n
        k = k + 1
        result.append(n)
    n = n + 1
return result
  1. 运行 通过命令行命令:

cython primes.pyx --embed

gcc -DMS_WIN64 -mthreads -mconsole -Wall -O -IC:\Python34\include -LC:\Python34\libs setup.c -lpython34 -o example.exe

我得到的错误是:

"c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../libmingw32.a(main.o):(.text.startup+0xa7): undefined reference to `WinMain@16'"

谢谢!

以下命令编译了你的 cython 程序

gcc -municode -DMS_WIN64 -O -Wall -I /c/devel/Python34/include -L /c/devel/Python34/libs/ primes.c -lpython34 -o example.exe

这是在 windows 7 64 位 msys2 环境中使用 gcc 4.9.1 和 5.3.0 64 位版本(win32 线程,SEH 异常处理)和 64 位 python 3.4.

我本来想的是因为少了main()会出问题但是cython默默加了一个