使用MinGW编译C程序导致cc1.exe致命错误

3
我使用win-builds安装了MinGW-w64,一切都进行得很好,但是当我使用以下命令编译文件时:

gcc -Wall -o prog.exe main.c

我收到了以下错误信息:

cc1.exe: fatal error: Files/win-builds-1.5.0/include: No such file or directory compilation terminated.

我已经更新了gcc路径。当我尝试在eclipse上构建时,我收到了相同的错误信息。win-builds放置所有文件的位置是C:\Program Files\win-builds-1.5.0\,并且存在\include\文件夹。
我猜测cc1.exe正在尝试访问C:\Program Files\win-builds-1.5.0\include,但由于某种原因将C:\ProgramFiles\win-builds-1.5.0\include分开了。
我该如何让编译器正常工作? Error 修改: 以下是要编译的代码。
/*
 * main.c
 *
 *  Created on: 13/06/2018
 *      Author: haslima
 */
#include <stdio.h>

int main()
{
    printf("Hello World");
    return 1;
}

编辑:

当我运行 gcc -v -c -o prog.exe main.c 时,我得到如下输出:

Reading specs from c:/program files/win-builds-1.5.0/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/specs
COLLECT_GCC=gcc
Target: x86_64-w64-mingw32
Configured with: ../gcc-4.8.3/configure --prefix=/opt/windows_64 --with-sysroot=/opt/windows_64 --libdir=/opt/windows_64/lib64 --mandir=/opt/windows_64/man --infodir=/opt/windows_64/info --enable-shared --disable-bootstrap --disable-multilib --enable-threads=posix --enable-languages=c,c++ --enable-checking=release --enable-libgomp --with-system-zlib --with-python-dir=/lib64/python2.7/site-packages --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --with-gnu-ld --verbose --enable-java-home --with-java-home=/opt/windows_64/lib64/jvm/jre --with-jvm-root-dir=/opt/windows_64/lib64/jvm --with-jvm-jar-dir=/opt/windows_64/lib64/jvm/jvm-exports --with-arch-directory=amd64 --with-antlr-jar='/home/adrien/projects/win-builds-1.5/slackware64-current/d/gcc/antlr-*.jar' --disable-java-awt --disable-gtktest --build=x86_64-slackware-linux --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32
Thread model: posix
gcc version 4.8.3 (GCC)
COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'prog.exe' '-mtune=generic' '-march=x86-64'
 c:/program files/win-builds-1.5.0/bin/../libexec/gcc/x86_64-w64-mingw32/4.8.3/cc1.exe -quiet -v -iprefix c:\program files\win-builds-1.5.0\bin\../lib64/gcc/x86_64-w64-mingw32/4.8.3/ -D_REENTRANT -IC:/Program Files/win-builds-1.5.0/include main.c -quiet -dumpbase main.c -mtune=generic -march=x86-64 -auxbase-strip prog.exe -version -o C:\Users\hasli\AppData\Local\Temp\ccnpAzB7.s
GNU C (GCC) version 4.8.3 (x86_64-w64-mingw32)
        compiled by GNU C version 4.8.3, GMP version 5.1.3, MPFR version 3.1.2, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "c:/program files/win-builds-1.5.0/lib64/gcc/../../lib64/gcc/x86_64-w64-mingw32/4.8.3/include"
ignoring nonexistent directory "/opt/windows_64/opt/windows_64/lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../include"
ignoring duplicate directory "c:/program files/win-builds-1.5.0/lib64/gcc/../../lib64/gcc/x86_64-w64-mingw32/4.8.3/include-fixed"
ignoring duplicate directory "c:/program files/win-builds-1.5.0/lib64/gcc/../../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/include"
ignoring nonexistent directory "/opt/windows_64/mingw/include"
ignoring nonexistent directory "C:/Program"
#include "..." search starts here:
#include <...> search starts here:
 c:\program files\win-builds-1.5.0\bin\../lib64/gcc/x86_64-w64-mingw32/4.8.3/include
 c:\program files\win-builds-1.5.0\bin\../lib64/gcc/x86_64-w64-mingw32/4.8.3/include-fixed
 c:\program files\win-builds-1.5.0\bin\../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/include
End of search list.
cc1.exe: fatal error: Files/win-builds-1.5.0/include: No such file or directory
compilation terminated.

尝试使用不包含任何头文件的 main.c 文件。 - john elemans
main.c 中是否包含引用那些路径的 #include?你能加上它的代码吗?另外,set Icmd 中输出什么? - CristiFati
@CristiFati我添加了代码。正如你所看到的,更简单是不可能的。在cmd中运行“set I”,我得到“未定义环境变量I”。 - Hélder Lima
嗯,那么这些包含路径在gcc的配置(文件?)中的某个地方。它们应该被双引号括起来。或者提到了“win-builds”(不知道是什么)。也许可以在那里找到。 - CristiFati
@CristiFati,查找了gcc配置文件但没有发现。Win-builds是按照这里的指示安装MinGW-64w的方法。https://mingw-w64.org/doku.php - Hélder Lima
显示剩余4条评论
1个回答

9

[MinGW]: 入门指南(包括粗体字):

MinGW在路径中含有空格时可能会出现问题,即使没有问题,与MinGW一起使用的其他程序通常也会遇到这些路径的问题。因此,我们强烈建议您不要在路径名称中包含空格的任何位置安装MinGW。您应该避免安装到任何名为“Program Files”或“My Documents”等名称的目录或子目录中。

因此,解决方案非常简单:

  • 卸载当前版本(可能不是必需的,但没有保留损坏的东西的意义)
  • 确保阅读所有安装要求/说明
  • 在无空格的dir中安装它

我应该更早地想到这一点,因为我不会将东西安装在默认目录中(例如,我已将MinGW安装在"f:\Install\pc064\MinGW\MinGW-W64\x86_64-8.1.0-posix-seh-rt_v6-rev0"中)。


非常感谢!您提供的网站是MinGW版本,而不是MinGW-w64。尽管您的解决方案完美地运行。 - Hélder Lima
除了(x86 / x64)架构之外,还有什么区别吗?实际上,有问题的不是MinGW,而是gcccc1端口)。 - CristiFati
我猜不是。你的解决方案非常完美。 - Hélder Lima
很高兴能够帮忙!说实话,我感到困惑,因为我在(遥远的)过去就遇到了这个问题,但没能早点解决。 - CristiFati
昨天你可能和我一样遇到了同样的问题。我认为昨天你推荐的网站不在线。我试图安装MinGW版本,但网站无法访问。 - Hélder Lima

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接