未解析的外部符号main(无下划线)

时间:2014-01-20 10:25:03

标签: python c visual-c++ lnk2019

我正在尝试将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()函数并将其抛入,并且仍然给出了上述错误以及重复的符号警告,因此这不是缺少的。

知道这里有什么问题吗?

2 个答案:

答案 0 :(得分:0)

您尝试使用入口点(非静态链接库)编译它。

答案 1 :(得分:0)

来自Jeremy Kloth的python-win32邮件列表:

文件列表还需要“.. \ Modules \ python.c”来创建 可执行文件。 (使用VS2008 for x64测试)。

缺少前导下划线来自于如何导出符号 64位PE与32位PE。也就是说,64位PE不会前置 强调导出的符号。