我正在尝试将C程序(特别是Python解释器)编译为纯静态链接的64位Windows二进制文件。我的命令行如下所示:
cl /DPy_BUILD_CORE ... /link Advapi32.lib Shell32.lib User32.lib
其中...
是源文件的长列表,包括目录规范,以及我根据需要添加的库规范来修复未解决的符号错误。我现在收到这个错误:
LIBCMT.lib(crt0.obj) : error LNK2019: unresolved external symbol main referenced in function __tmainCRTStartup
您可能认为此问题之前已被问过,但在这种情况下,main
拼写为而不是一个领先的_
- 这种情况在任何情况下都不会发生我可以通过Google搜索找到的其他事件。为了确定,我尝试编写一个最小的main()
函数并将其抛入,并且仍然给出了上述错误以及重复的符号警告,因此这不是缺少的。
知道这里有什么问题吗?
答案 0 :(得分:0)
您尝试使用入口点(非静态链接库)编译它。
答案 1 :(得分:0)
来自Jeremy Kloth的python-win32邮件列表:
文件列表还需要“.. \ Modules \ python.c”来创建 可执行文件。 (使用VS2008 for x64测试)。
缺少前导下划线来自于如何导出符号 64位PE与32位PE。也就是说,64位PE不会前置 强调导出的符号。