【发布时间】:2016-04-28 11:19:49
【问题描述】:
我正在尝试按照此处的说明在 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) : 对 `WinMain@16' 的未定义引用"
谢谢!
【问题讨论】:
-
看看这是否适用,stackoverflow.com/questions/5259714/… 和/或尝试添加例如
-mconsole编译标志。 -
我试过了,但也没有用:(
-
我认为您应该编辑您的问题,并更详细地说明您要执行的操作,例如用于编译和链接的命令。还使用了 cython 命令。
-
@J.J.Hakala。谢谢你。我刚刚编辑了它。
-
您的 .pyx 文件中有名为 main() 的方法吗?
标签: python compilation executable cython