为什么gcc是从源代码libstdc++;是为错误的体系结构构建的,32位,而预期为64位?

为什么gcc是从源代码libstdc++;是为错误的体系结构构建的,32位,而预期为64位?,gcc,libstdc++,Gcc,Libstdc++,我正在尝试使用gcc从源代码编译lftp,这是我在主文件夹下从源代码编译的编译器。 在生成步骤中,我得到一个错误: /bin/sh ../libtool --silent --tag=CXX --mode=link g++ -O2 -Wall -Wwrite-strings -Woverloaded-virtual -fno-exceptions -fno-rtti -fno-implement-inlines -export-dynamic -s -o lftp lftp-lftp.o

我正在尝试使用gcc从源代码编译lftp,这是我在主文件夹下从源代码编译的编译器。 在生成步骤中,我得到一个错误:

/bin/sh ../libtool --silent  --tag=CXX   --mode=link g++  -O2 -Wall -Wwrite-strings -Woverloaded-virtual -fno-exceptions -fno-rtti -fno-implement-inlines -export-dynamic -s -o lftp lftp-lftp.o lftp-complete.o lftp-lftp_rl.o lftp-attach.o liblftp-jobs.la liblftp-tasks.la -L/usr/lib -lreadline -lutil -lncurses -ldl 
/gsa/pokgsa/home/l/e/leonidt/local/lib/../lib/libstdc++.so: error      adding symbols: File in wrong format
collect2:错误:ld返回了1个退出状态 生成[2]:*[lftp]错误1 make[2]:离开目录
/gsa/pokgsa-h3/19/leonidt/local/lftp-4.8.4/src'
生成[1]:***[install recursive]错误1
make[1]:离开目录
/gsa/pokgsa-h3/19/leonidt/local/lftp-4.8.4' make::
[install]错误2

看来编译器是用libstdc++构建的。那么对于错误的体系结构呢?

我试图检查libstdc++中的内容。因此:

file /gsa/pokgsa/home/l/e/leonidt/local/lib/libstdc++.so
/gsa/pokgsa/home/l/e/leonidt/local/lib/libstdc++.so: symbolic link to `libstdc++.so.6.0.27'

file /gsa/pokgsa/home/l/e/leonidt/local/lib/libstdc++.so.6.0.27                    
/gsa/pokgsa/home/l/e/leonidt/local/lib/libstdc++.so.6.0.27: **ELF 32-bit** MSB shared object, IBM S/390, version 1 (GNU/Linux), dynamically linked, not stripped
以下是我在本地文件夹中构建gcc的步骤:

 cd ~/local 
解压gcc-9.2.0.tar.xz 使用gcc源代码创建了~/local/gcc-9.2.0

cd ../gcc-9.2.0/
下载的先决条件

提交/下载

cd~/local/gcc构建

…/GC-C-2.2.0/Opto-前缀/GSA/POKGSA/HOME/L/E/LeONID/本地/使能语言= C、C++ +/P> 我在SuSe Linux上:

uname -a
Linux zdsdeveng03 3.0.101-108.84-默认值#1 SMP周五11月30日15:57:27 UTC 2018(7a72692)s390x s390x s390x GNU/Linux

cat /etc/os-release                                                                                     NAME="SLES"           
VERSION="11.4"
VERSION_ID="11.4"
PRETTY_NAME="SUSE Linux Enterprise Server 11 SP4"
ID="sles"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:suse:sles:11:4"

您必须为配置脚本指定体系结构


您必须为配置脚本指定体系结构


谢谢你,斯威夫特。我几乎没有这方面的经验,如果您能指出具体的选项,我将不胜感激。同时,我将尝试:…/GC-C-2.2.0/Opto-前缀/GSA/POKGSA/HOME/L/E/LeONID/本地/使能语言= C,C++ + -ARCH-64=cpu@LeonidTepliakov这取决于构建的目的,以及您的系统是否需要其他东西。这样,它将只支持x64,并作为本机编译器工作,我想谢谢你,斯威夫特。看起来这正是我需要的。make失败:(检查mkdir是否接受一个参数…(缓存)否此目标不支持--with-arch_64。有效--with选项为:arch模式调谐make[2]:***[configure-stage1-gcc]错误1 make[2]:离开目录
/gsa/pokgsa-h3/19/leonidt/local/gcc build'make[1]:***[stage1-bubble]错误2 make[1] :离开目录
/gsa/pokgsa-h3/19/leonidt/local/gcc build'make:**[全部]错误2?任何建议?尝试-CPU-64=CPU-YOU,Swift。我在这个主题中几乎没有经验,请您指出具体的使用选项。同时我将尝试:…/GCC-92.0/Opto-前缀/GSA/POKGSA/HOME/L/E/LeONID/本地/启用语言= C,C++ + -ARCH-64==cpu@Leonid这取决于你的目的对于该构建,以及您的ssystem是否需要其他功能。这样,它将只支持x64并作为本机编译器工作,我想谢谢您,斯威夫特。看起来这正是我需要的。make失败:(检查mkdir是否有一个参数…(缓存)否此目标不支持--with-arch_64。有效--with选项为:arch模式调谐制作[2]:***[configure-stage1-gcc]错误1制作[2]:离开目录
/gsa/pokgsa-h3/19/leonidt/local/gcc build'make[1]:***[stage1气泡]错误2制作[1]:离开目录
/gsa/pokgsa-h3/19/leonidt/local/gcc build'make:**[all]错误2有任何建议吗?正在尝试--with-cpu-64=cpu