现在我正在尝试使用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
任何人遇到这个或者可以帮忙吗?
答案 0 :(得分:1)
你的MinGW安装有问题,或者只是你的PATH环境变量没有设置得恰到好处。
COLLECT_GCC
表示gcc
位于E:\MinGW\bin\gcc.exe
COLLECT_GCC_OPTIONS
表示gcc
无法找到cc1.exe
,因此它尝试将其作为简单的cc1
命令执行,希望系统能够通过正常情况找到它路径搜索。系统找不到它,因此您收到CreateProcess
错误。由于构建GCC的Target
为mingw32
,我希望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。