哪个库在 gcc 汇编输出中有 __main 函数引用

What library has the __main function reference in gcc assembly output

当使用 MinGW 编译一个空的 c 程序时,汇编输出包含行

call __main

这是哪个图书馆的?我希望与 msvcrt.dll 的链接能够工作(使用 ld 进行链接),但它没有,所以必须在别处定义它。

其他地方有很多related/practically相同的问题,但其中none(据我所知,已经搜索了一段时间)实际上包含了这个问题的答案,所以请在标记为重复之前仔细检查。

__main 应该由 MinGW 编译器自带的 libgcc 库提供。

如果您使用编译器驱动程序(即 gcc 命令行工具)link 您的程序,而不是直接调用 ld,该库应该会自动添加到 link。出于这个原因和其他几个原因,建议使用编译器驱动程序 link。

具体取决于您拥有的 MinGW 版本及其嵌入的 GCC 版本,libgcc 或其中的一部分可能是一个 DLL,如果您要运送 MinGW 编译的可执行文件,则必须捆绑它。

在我的 Windows 10 机器上,它位于 \Program Files\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\lib\gcc\x86_64-w64-mingw32.1.0\libgcc.a 中,然后直接与可执行文件,因此您不必在软件中包含任何 DLL。