我正在尝试在cython中创建一个可执行文件,遵循以下指示: Making an executable in Cython。 但是,我一直收到错误“未定义引用'WinMain @ 16'colle2.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
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)。 :未定义引用`WinMain @ 16'“
谢天谢地!
答案 0 :(得分:0)
以下命令编译了你的cython程序
gcc -municode -DMS_WIN64 -O -Wall -I /c/devel/Python34/include -L /c/devel/Python34/libs/ primes.c -lpython34 -o example.exe
这是在使用gcc 4.9.1和5.3.0 64位版本(win32线程,SEH异常处理)和64位python 3.4的Windows 7 64位msys2环境中完成的。
我最初的想法是因为缺少 main()会出现问题,但 cython 会默默地添加一个。