提问者:小点点

简单c程序上的过程入口点错误


最近,在老师的建议下,我决定尝试一下C。我下载了MinGW,开始用g编译一些简单的代码,但是过了一段时间,我编译的任何程序都无法运行,不管我怎么尝试。我总是遇到类似这样的错误:

(我的电脑是葡萄牙语的,我很抱歉。上面的消息翻译成“过程[过程名称]无法在动态链接库[编译可执行文件的名称]中找到”。这个特殊的错误消息出现在我制作的标题生成器工具上,它是一个单一的. cpp文件。我编译的其他程序在执行时总是显示“过程切入点”错误)

我正在使用命令g-o编译

因为我没有做任何比一些类练习更大的事情,所以我真的很想能够编译我的代码,而不必使用像Visual Studio这样的重型工具,我还想知道为什么有必要添加-strist-libstdc-strist-libgcc才能正常工作。

PS。:另一件需要注意的事情是,在我全新的笔记本电脑(具有相同的MinGW配置)上编译工作正常。我和我的老师谈过这个问题,他认为微软的C再发行软件(从工具和游戏中安装)可能与MinGW提供的标准C库相冲突。不过,他对此并不确定。

PS-2.:看起来非常简单的代码工作(比如Hello World)。任何更复杂的东西都会分开。这是我在错误出现的地方做的最简单的代码:https://hastebin.com/aqamidoxom.cpp


共1个答案

匿名用户

一些标准库功能是“仅标头”的,因此它们被烘焙到您的可执行文件中。

其他的更复杂,并且存在于MinGW"运行时"DLL中,您必须将其与可执行文件一起提供。通常只需将其放在与可执行文件相同的目录中,或者将其放在PC的%PATH中的某个位置即可。

当您静态链接标准库时,您可以避开它,因为现在它的所有内容都被烘焙到您的可执行文件中。

这与Visual Studio或其DLL完全无关。(除了MinGW DLL之外,您还将使用mcvcrt. dll,但这与Visual Studio无关,它始终在Windows上可用。)

进一步阅读:

  • 分发使用MinGW g
  • 编译的程序
  • 无论代码如何,MinGW. exe都需要一些gcc dll?

相关问题