我试图编译一个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()
函数并抛出它,并且仍然给出了上述错误和重复的符号警告,所以这不是什么缺失。
任何想法这里有什么问题吗?
你正试图建立一个控制台应用程序?我在编辑行中看不到'/ SUBSYSTEM'。你使用的是什么调用约定?我会从这些开始。 – WhozCraig
@WhozCraig是的。我以前没有遇到/子系统,并且说它从来没有听说过;什么是参考?我正在使用的命令行看起来像通常用于构建命令行程序的命令行,包括默认调用约定;我不知道任何方式的.c文件的内容打破标准库和一个不同的.c文件之间的调用约定? – rwallace
正如您所问,[在ms'网站上查看/SUBSYSTEM](http://msdn.microsoft.com/en-us/library/fcc1zstk.aspx)。它是一个链接器选项。调用约定是一个编译器选项(尽管它的确切语法让我感觉不到; sry)。 – WhozCraig