C& MinGW:Hello World给我错误“程序太大而无法记忆”

时间:2012-09-23 09:36:40

标签: c gcc mingw

我是新来的。这是我的问题:

我在配备Intel Atom CPU N550,1.50GHz和2GB RAM的Windows 7 Home Premium 32位上网本上安装了MinGW。

现在我创建了一个名为hello.h的文件,并尝试使用以下命令通过CMD编译它: “gcc c:\ workspace \ c \ helloworld \ hello.h -o out.exe”

它编译时没有错误,但是当我尝试运行out.exe时,它会出现以下错误: “程序太大而无法记忆”

我检查过的事情:

  • 我已将“C:\ MinGW \ bin”添加到Windows PATH变量
  • 我用Google搜索了大约一个小时,但自从我成为新手以来,我做不到 真的弄明白问题是什么。
  • 我在64位机器上编译了相同的代码,编译 完美,但由于64位< - >而无法运行16位有问题。

我真的很感激,如果有人能弄明白,问题是什么。顺便说一下,这是我的hello.h:

#include <stdio.h>

int main(void){
    printf("Hello, World\n");
}

......就是这样。谢谢你的回复。 干杯,鲍里斯

3 个答案:

答案 0 :(得分:2)

只需将文件重命名为hello.c

.h文件是C编程中的标题,你应该在其中添加一些签名,你的方法正文应该在.c文件中

答案 1 :(得分:2)

默认情况下,扩展名为.h的文件被GCC视为标题文件。通常,头文件不应该直接送到编译器。它们应该#include到实现文件中。

但是,GCC在看到直接向其提供头文件时会实现特殊功能。在命令行中指定.h文件会使GCC将其解释为为该.h文件生成预编译头文件的请求。通过使用-o选项,您强制编译器为结果预编译的头文件指定一个特定的名称out.exe

然而,结果文件不是可执行文件,它是预编译的头文件。您可以在十六进制编辑器中打开它,看到它以gpch开头,.exe是GCC的预编译器头签名。任何尝试&#34;执行&#34;该文件将导致无意义的结果。 (这基本上就像尝试将完全随机的文件重命名为{{1}}扩展名,然后&#34;运行&#34;它。)

答案 2 :(得分:0)

为了解决此问题,您必须将 C:\ TDM-GCC-32 \ bin 添加到%PATH%变量。
对我来说,它在E:上,所以它将是: E:\ TDM-GCC-32 \ bin

步骤:
1。复制TDM-GCC \ bin文件夹的路径
enter image description here

2。打开计算机属性
enter image description here

3。导航到高级

4。单击环境变量按钮
enter image description here

5。选择变量PATH,然后单击“编辑”按钮
enter image description here

6。最后添加复制的TDM-GCC路径。不要忘记分号。
enter image description here


完成所有这些步骤后,依次单击“确定”,“确定”,“应用”,“确定”。而您已设置好!

这是命令提示符中的结果:
enter image description here