从 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
- 运行 通过命令行命令:
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默默加了一个
我正在尝试按照此处的说明在 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
- 运行 通过命令行命令:
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默默加了一个