Проблема с компиляцией GDB - PullRequest
0 голосов
/ 25 февраля 2019

Я столкнулся с проблемой компиляции GDB из source .Я загружаю версию 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 относительночасть настройки и установки, а также различные ссылки на stackoverflow, но, похоже, никто не сталкивается с этой проблемой
  • Считайте файл README в папке / подпапках gdb
  • Попытался установить следующие параметры env CXX_FOR_TARGET=/usr/local/gcc8.2/bin/g++ GCC_FOR_TARGET=/usr/local/gcc8.2/bin/gcc(не уверен, стоит ли мне заменять target моей фактической целевой архитектурой)
  • Посмотрел в папке gdb-8.2.1 файл config.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 / bin / gcc

Однако в разделе компилятора C того же журнала конфигурации Iнашли следующее:

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.

Я не уверен, что если я могу использовать GDB devtoolset-8 из RedHat, потому что я скомпилировал gcc с GLIBCXX_USE_CXX11_ABI = 1 и в RedHat из-за ошибки , это отключенопо умолчанию, и я не уверен, сможет ли GDB управлять другим двоичным интерфейсом.

Короткая версия : Что я делаю не так, что скрипт GDB configure не находит правильный компилятор и как я могу это исправить / обойти?

Спасибоочень за вашу помощь!

1 Ответ

0 голосов
/ 26 февраля 2019

Компилятор с поддержкой 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 не использует псевдонимы оболочки, посколькуони не наследуются сценариями оболочки, вызываемыми из оболочки.Вам нужно будет явно указать полный путь к компилятору C ++ (в аргументе CXX= для настройки), либо вручную настроить переменную окружения PATH, либо использовать scl enable, чтобы сделать это вболее изысканная мода (для коллекций программного обеспечения, таких как Developer Toolset).

...