配置失败,“C编译器无法创建可执行文件”

时间:2014-03-03 07:12:32

标签: gcc mingw protocol-buffers

现在我正在尝试使用MinGW从源代码编译google协议缓冲区但是当我尝试时:

Matthew@RaRemoz-8 /e/workspace/protobuf-2.5.0
$ ./configure
checking whether to enable maintainer-specific portions of Makefiles... yes
checking build system type... i686-pc-mingw32
checking host system type... i686-pc-mingw32
checking target system type... i686-pc-mingw32
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc

checking whether the C compiler works... no
configure: error: in `/e/workspace/protobuf-2.5.0':
configure: error: C compiler cannot create executables
See `config.log' for more details

,配置说:This

它似乎在这个

失败了
configure:3474: checking whether the C compiler works
configure:3496: gcc    conftest.c  >&5
gcc.exe: error: CreateProcess: No such file or directory
configure:3500: $? = 1
configure:3538: result: no

继承-v:

的输出
$ gcc -v helloworld.c
Using built-in specs.
COLLECT_GCC=E:\MinGW\bin\gcc.exe
Target: mingw32
Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 --build=m
ingw32 --without-pic --enable-shared --enable-static --with-gnu-ld --enable-lto
--enable-libssp --disable-multilib --enable-languages=c,c++,fortran,objc,obj-c++
,ada --disable-sjlj-exceptions --with-dwarf2 --disable-win32-registry --enable-l
ibstdcxx-debug --enable-version-specific-runtime-libs --with-gmp=/usr/src/pkg/gm
p-5.1.2-1-mingw32-src/bld --with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --
with-mpfr= --with-system-zlib --with-gnu-as --enable-decimal-float=yes --enable-
libgomp --enable-threads --with-libiconv-prefix=/mingw32 --with-libintl-prefix=/
mingw --disable-bootstrap LDFLAGS=-s CFLAGS=-D_USE_32BIT_TIME_T
Thread model: win32
gcc version 4.8.1 (GCC)
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=pentiumpro'
 cc1 -quiet -v -iprefix E:\MinGWmingw32/4.8.1/ helloworld.c -quiet -dumpbase hel
loworld.c -mtune=generic -march=pentiumpro -auxbase helloworld -version -o C:\Us
ers\Matthew\AppData\Local\Temp\ccVVxhTh.s
gcc.exe: error: CreateProcess: No such file or directory

任何人遇到这个或者可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

你的MinGW安装有问题,或者只是你的PATH环境变量没有设置得恰到好处。

  • COLLECT_GCC表示gcc位于E:\MinGW\bin\gcc.exe
  • COLLECT_GCC_OPTIONS表示gcc无法找到cc1.exe,因此它尝试将其作为简单的cc1命令执行,希望系统能够通过正常情况找到它路径搜索。系统找不到它,因此您收到CreateProcess错误。由于构建GCC的Targetmingw32,我希望cc1.exe位于E:\MinGW\libexec\gcc\mingw32\4.8.1\cc1.exe

cc1调用还有一些有趣之处:它指定了-iprefix E:\MinGWmingw32/4.8.1/选项。

我希望它看起来像:-iprefix E:\MinGW\bin\../lib/gcc/mingw32/4.8.1/

有些东西正在改变-iprefix选项,但我不确定是什么。

我建议重新安装MinGW。正如我的一条评论中所提到的,我选择以下发行版之一,因为它们总是以一种简单的方式安装给我。对于标准的MinGW分发安装程序,我不能说同样的事情,虽然我听说它在过去几年里有了很大的改进。

  • nuwen.net's MinGW Distro - 请注意,最新版本是64位本机,因此它只能在64位计算机上运行,​​显然只会构建64位二进制文​​件(11.0之前的发行版本为32 -bit native,只构建32位二进制文​​件)。关于nuwen MinGW的一个非常好的事情是安装只是解压缩存档并适当地设置路径。有一个set_distro_paths.bat会将它添加到路径中。 Nuwen的发行版还包括几个库,包括Boost。不幸的是,C ++ 11线程似乎还不支持。

  • TDM MinGW - 您可以选择32位或64位版本。 64位版本将构建32位或64位目标。工具链本身是一个32位构建,因此它不需要64位机器来执行编译/链接步骤。使用-m32选项构建32位目标。 TDM的安装程序是向导式安装程序。支持C ++ 11线程,但不包括Boost。