weixin_43496057 2024-07-23 16:45 采纳率: 25%
浏览 33

centos7 升级gcc make编译报错

centos7 编译gcc 遇到报错


config.status: auto-target.h is unchanged
config.status: executing default commands
/data/gcc-10.2.0/host-x86_64-pc-linux-gnu/gcc/xgcc -B/data/gcc-10.2.0/host-x86_64-pc-linux-gnu/gcc/ -B/usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/bin/ -B/usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/lib/ -isystem /usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/include -isystem /usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/sys-include   -fno-checking -g -O2 -O2  -g -O2 -DIN_GCC    -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fpic -mlong-double-80 -DUSE_ELF_SYMVER  -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  -fpic -mlong-double-80 -DUSE_ELF_SYMVER  -I. -I. -I../../host-x86_64-pc-linux-gnu/gcc -I../.././libgcc -I../.././libgcc/. -I../.././libgcc/../gcc -I../.././libgcc/../include -I../.././libgcc/config/libbid -DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS  -DUSE_TLS -o _gcov_merge_ior.o -MT _gcov_merge_ior.o -MD -MP -MF _gcov_merge_ior.dep -DL_gcov_merge_ior -c ../.././libgcc/libgcov-merge.c
make[5]: 进入目录“/data/gcc-10.2.0/x86_64-pc-linux-gnu/32/libgcc”
# If this is the top-level multilib, build all the other
# multilibs.
{ cat libgcc-std.ver ../../.././libgcc/config/i386/libgcc-glibc.ver \
    | sed -e '/^[       ]*#/d' \
          -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' \
    | /data/gcc-10.2.0/host-x86_64-pc-linux-gnu/gcc/xgcc -B/data/gcc-10.2.0/host-x86_64-pc-linux-gnu/gcc/ -B/usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/bin/ -B/usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/lib/ -isystem /usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/include -isystem /usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/sys-include   -fno-checking -g -O2 -m32 -O2  -g -O2 -DIN_GCC    -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fpic -mlong-double-80 -DUSE_ELF_SYMVER  -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  -fpic -mlong-double-80 -DUSE_ELF_SYMVER  -I. -I. -I../../../host-x86_64-pc-linux-gnu/gcc -I../../.././libgcc -I../../.././libgcc/. -I../../.././libgcc/../gcc -I../../.././libgcc/../include  -DHAVE_CC_TLS  -DUSE_TLS -E -xassembler-with-cpp -; \
} > tmp-libgcc.map.in
mv tmp-libgcc.map.in libgcc.map.in
dest=../../../host-x86_64-pc-linux-gnu/gcc/include/tmp$$-unwind.h; \
cp unwind.h $dest; \
chmod a+r $dest; \
sh ../../.././libgcc/../move-if-change $dest ../../../host-x86_64-pc-linux-gnu/gcc/include/unwind.h
/data/gcc-10.2.0/host-x86_64-pc-linux-gnu/gcc/xgcc -B/data/gcc-10.2.0/host-x86_64-pc-linux-gnu/gcc/ -B/usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/bin/ -B/usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/lib/ -isystem /usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/include -isystem /usr/local/gcc-10.2.0/x86_64-pc-linux-gnu/sys-include   -fno-checking -g -O2 -m32 -O2  -g -O2 -DIN_GCC    -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fpic -mlong-double-80 -DUSE_ELF_SYMVER  -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  -fpic -mlong-double-80 -DUSE_ELF_SYMVER  -I. -I. -I../../../host-x86_64-pc-linux-gnu/gcc -I../../.././libgcc -I../../.././libgcc/. -I../../.././libgcc/../gcc -I../../.././libgcc/../include  -DHAVE_CC_TLS  -DUSE_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep -DL_muldi3 -c ../../.././libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS
In file included from /usr/include/features.h:399,
                 from /usr/include/stdio.h:27,
                 from ../../.././libgcc/../gcc/tsystem.h:87,
                 from ../../.././libgcc/libgcc2.c:27:
/usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-32.h: 没有那个文件或目录
    7 | # include <gnu/stubs-32.h>
      |           ^~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [Makefile:501:_muldi3.o] 错误 1
make[5]: 离开目录“/data/gcc-10.2.0/x86_64-pc-linux-gnu/32/libgcc”
make[4]: *** [Makefile:1212:multi-do] 错误 1
make[4]: 离开目录“/data/gcc-10.2.0/x86_64-pc-linux-gnu/libgcc”
make[3]: *** [Makefile:127:all-multi] 错误 2
make[3]: *** 正在等待未完成的任务....
make[3]: 离开目录“/data/gcc-10.2.0/x86_64-pc-linux-gnu/libgcc”
make[2]: *** [Makefile:21836:all-stage1-target-libgcc] 错误 2
make[2]: 离开目录“/data/gcc-10.2.0”
make[1]: *** [Makefile:26120:stage1-bubble] 错误 2
make[1]: 离开目录“/data/gcc-10.2.0”
make: *** [Makefile:1007:all] 错误 2
[root@localhost gcc-10.2.0]# 
  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-07-23 16:45
    关注

    以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:


    从您提供的错误信息来看,确实存在几个可能的问题点,以下是一些可能的解决方案:

    1. 缺失的头文件:错误信息指出编译器找不到gnu/stubs-32.h文件。这通常意味着您的系统上可能缺少32位开发工具或库。在64位系统上编译32位代码时,需要安装32位的glibc开发包。您可以使用以下命令尝试安装:

      yum install glibc-devel.i686
      
    2. 多架构支持:确保您的系统支持多架构编译。在64位系统上编译32位代码通常需要gcc-multilib包。您可以尝试安装它:

      yum install gcc-c++ gcc-gfortran gcc-multilib
      
    3. 环境配置:检查您的环境变量和路径设置,确保它们正确无误。特别是-isystem-B选项指定的路径需要指向正确的库和二进制文件位置。

    4. 清理编译环境:有时候,旧的编译产物可能会干扰新的编译过程。尝试清理之前的编译产物,然后重新编译:

      make clean
      
    5. 查阅文档和社区:GCC的官方文档和社区论坛是解决编译问题的宝贵资源。您可以搜索相关问题或在论坛上提问。

    6. 更新或重新安装GCC:如果问题依然存在,考虑更新或重新安装GCC。有时候,编译器的某些版本可能存在已知的bug,升级到最新版本可能会解决问题。

    7. 测试和验证:在尝试上述解决方案后,重新编译并验证是否解决了问题。

    如果您在尝试这些步骤后仍然遇到问题,建议提供更多的上下文信息,例如您的系统配置、GCC版本以及您尝试编译的具体代码或项目。这有助于进一步诊断问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月23日