gmp4.3.2 安装 configure: error: could not find a working compiler

今天在虚拟机上想安装gcc4.7.2 

但貌似有三个依赖。 

那就顺序装吧。 

装到gmp的时候。怎么都configure不过去,各种查各种不行,但是我之前在别的机器装成功过。 

刚开始一直以为是某个编译程序没有装,后来仔细对比了通过的和不通过的。发现问题所在了。 

如下: 

这个是错误的。 

checking build system type... pentiumm-unknown-linux-gnu 
checking host system type... pentiumm-unknown-linux-gnu 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether build environment is sane... yes 
checking for gawk... gawk 
checking whether make sets $(MAKE)... yes 
checking whether to enable maintainer-specific portions of Makefiles... no 
checking ABI=32 
checking compiler gcc -m32 -O2 -pedantic -fomit-frame-pointer ... no 
checking compiler gcc -O2 -pedantic -fomit-frame-pointer ... yes 
checking compiler gcc -O2 -pedantic -fomit-frame-pointer has sizeof(long)==4... no 
checking compiler icc -no-gcc ... no 
checking whether cc is gcc... yes 
checking compiler cc -m32 -O2 -pedantic -fomit-frame-pointer ... no 
checking compiler cc -O2 -pedantic -fomit-frame-pointer ... yes 
checking compiler cc -O2 -pedantic -fomit-frame-pointer has sizeof(long)==4... no 
configure: error: could not find a working compiler, see config.log for details 


由于另一个机器无法拷贝。我就把这个机器之后编译好的拿过来吧。 

checking build system type... x86_64-pc-linux-gnu 
checking host system type... x86_64-pc-linux-gnu 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether build environment is sane... yes 
checking for gawk... gawk 
checking whether make sets $(MAKE)... yes 
checking whether to enable maintainer-specific portions of Makefiles... no 
checking ABI=64 
checking compiler gcc -O2 -pedantic -m64 ... yes 
checking compiler gcc -O2 -pedantic -m64  -mtune=k8... yes 
checking for gcc... gcc 
checking for C compiler default output file name... a.out 
checking whether the C compiler works... yes 
checking whether we are cross compiling... no 
checking for suffix of executables... 
checking for suffix of object files... o 
checking whether we are using the GNU C compiler... yes 
checking whether gcc accepts -g... yes 
checking for gcc option to accept ISO C89... none needed 
checking for gcc option to accept ISO C99... -std=gnu99 
checking for gcc -std=gnu99 option to accept ISO Standard C... (cached) -std=gnu99 
checking how to run the C preprocessor... gcc -std=gnu99 -E 
checking build system compiler gcc -std=gnu99... yes 
checking for build system preprocessor... gcc -std=gnu99 -E 
checking for build system executable suffix... 
checking whether build system compiler is ANSI... yes 
checking for build system compiler math library... -lm 
checking for grep that handles long lines and -e... /bin/grep 


就贴这么几行,大家注意找不同点。 

其实就出在ABI=64和ABI=32上面了。 

ABI是什么呢? 

百度一下: 
应用程序二进制接口 
ABI:application binary interface 
详细内容请自行百度 

除了这个,大家请看前两行 
pentiumm-unknown-linux-gnu 
这个机器是奔腾M的处理器,所以编译器默认他是32位的处理器,而对ABI设置成了32位,编译的时候也使用的是32位。 

所以config.log里就出现了icc command not found 
因为貌似icc是32位编译用的。(我猜的,没有仔细考证) 

那知道愿意了问题就好解决了。 

./configure --prefix=/usr/local/gcc/gmp-4.3.2 --build=x86_64-linux 

加上--build=x86_64-linux 
注意之后编译的log前两行 
checking build system type... x86_64-pc-linux-gnu 

这样就成功了。

你可能感兴趣的:(linux)