Cython与Visual C++编译器?

3 投票
1 回答
2987 浏览
提问于 2025-04-16 23:11

我用Cython生成了一个C文件,接下来我该怎么用Visual C++ 2010编译器来制作一个EXE文件呢?

我试过这个

cython.py Temp.py
cl.exe /MD /I "%ProgramFiles%\Python 2.6\include" Temp.c /link
     /LibPath:"%ProgramFiles%\Python 2.6\libs"

但是它显示了这个错误

LINK : fatal error LNK1561: entry point must be defined

如果我把/MD选项改成/MT,那么我就得到了Temp.c

LIBCMT.lib(crt0.obj) : error LNK2019:
  unresolved external symbol main referenced in function __tmainCRTStartup

1 个回答

7

默认情况下,Cython 生成的代码是为了创建一个 Python 模块,而不是一个可执行文件。举个例子,它会生成一个 init<modulename>() 的函数,但不会生成 main() 函数。如果你想改变这个情况,可以使用 --embed 这个选项,具体的说明可以参考 Embedding Cython

另外,你也可以看看这个链接: Cython 能编译成 EXE 吗? -- 其中一个回答还给出了使用 VC++ 的示例。

撰写回答