GDB编译问题

问题描述 投票:1回答:1

我遇到了从source编译gdb的问题。我正在下载8.2.1版,但是当我尝试编译它时,我收到以下错误:

configure: error: *** A compiler with support for C++11 language features is required.
make[1]: *** [configure-gdb] Error 1

我的操作系统是Red Hat 7.6(Maipo),但我有一个源代码gcc编译(我设置为默认的一个,在bashrc中有一个别名)

gcc --version
gcc (GCC) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.

which gcc
alias gcc='/usr/local/gcc8.2/bin/gcc'
        /usr/local/gcc8.2/bin/gcc
which g++
alias g++='/usr/local/gcc8.2/bin/g++'
        /usr/local/gcc8.2/bin/g++

到目前为止我尝试/阅读过的内容

  • 阅读有关配置和安装部分的gdb manual,以及各种stackoverflow链接,但似乎没有人有这个问题
  • 阅读gdb文件夹/子文件夹中的README文件
  • 尝试设置以下env选项CXX_FOR_TARGET=/usr/local/gcc8.2/bin/g++ GCC_FOR_TARGET=/usr/local/gcc8.2/bin/gcc(不确定我是否应该用我的实际目标架构替换目标)
  • 在文件gdb-8.2.1config.log文件夹中查找并找到:ac_cv_env_GCC_FOR_TARGET_value = / usr / local / gcc8.2 / bin / gcc ac_cv_prog_CXX_FOR_TARGET = / usr / local / gcc8.2 / bin / g ++ ac_cv_prog_GCC_FOR_TARGET = / usr / local / gcc8。 2 /斌/ GCC

但是在同一配置日志的C编译器部分中,我发现了以下内容:

configure:4284: checking for C compiler version
configure:4293: gcc --version >&5
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

我不确定ifi是否可以使用RedHat的devtoolset-8 gdb,因为我已经使用GLIBCXX_USE_CXX11_ABI = 1编译gcc,并且由于bug而在RedHat上默认情况下这是禁用的,我不确定gdb是否能够管理不同的二进制文件接口。

简短版本:我做错了是什么让GDB configure脚本找不到正确的编译器,我该如何解决/解决这个问题?

非常感谢您的帮助!

gcc gdb g++ abi
1个回答
1
投票

支持C ++ 11的Red Hat Enterprise Linux 7编译器是Red Hat Developer Toolset的一部分。它恰好不仅包括GCC 8,还包括GDB 8.2,因此您甚至不必自己编译。 DTS C ++编译器以特殊方式构建,以便与系统C ++运行时互操作。除非您在GCC构建中复制了这些修改,否则它将与系统的其余部分不兼容(您将不得不替换系统libstdc ++库)。

Red Hat Enterprise Linux 7中的系统编译器基于GCC 4.8。在该版本中,C ++ 11支持仍处于试验阶段,默认情况下未启用。您可以尝试使用配置GDB

./configure CXX="g++ -std=gnu+11"

但不建议这样做(仅支持C ++ 98模式)。

configure脚本不使用shell别名,因为它们不会被从shell调用的shell脚本继承。您必须明确指定C ++编译器的完整路径(在配置的CXX=参数中),或手动调整PATH环境变量,或使用scl enable以更加精细的方式执行此操作(对于像Developer Toolset这样的软件集合) 。

© www.soinside.com 2019 - 2024. All rights reserved.