Рейтинг:1

Как сделать шаблон поддержки компилятора C++ для STL, чтобы установить HPCtoolkit?

флаг cn

я пытаюсь установить HPCtoolkit с использованием Спак. Для этого я выполнил:

git-клон https://github.com/spack/spack.git
компакт-диск spack/поделиться/spack
источник setup-env.sh 
spack fetch -D HPCtoolkit
спак установить HPCtoolkit 

Я не могу выполнить последнюю команду, потому что получаю следующую ошибку:

Ошибка: ProcessError: команда завершилась со статусом 1:
    './bootstrap.sh' '--prefix=/home/hakim/spack/opt/spack/linux-ubuntu20.04-haswell/gcc-10.2.0/boost-1.76.0-oc2u6jxritfsbci4xkhr5lov3i4o4riq' '--with- toolset=gcc' '--with-libraries=serialization,atomic,log,exception,regex,math,random,program_options,wave,iostreams,chrono,system,test,graph,locale,timer,filesystem,date_time,thread' ' --без-icu'

Он рекомендовал мне взглянуть на журнал сборки, отобразив следующее сообщение:

Подробности смотрите в журнале сборки:
  /tmp/hakim/spack-stage/spack-stage-boost-1.76.0-oc2u6jxritfsbci4xkhr5lov3i4o4riq/spack-build-out.txt

а предыдущий файл содержит:

Для сборки ядра B2 требуется компилятор с поддержкой C++11.
Набор инструментов "gcc" не поддерживает C++11.

> g++ -x c++ -std=c++11 check_cxx11.cpp
ОШИБКА: компилятор [email protected] не поддерживает компиляцию программ на C++.

Для отображения компиляторов я использовал команду:

список компиляторов спака 

и результат:

==> Доступные компиляторы
-- лязг Ubuntu20.04-x86_64 -------------------------------------
лязг@10.0.0 лязг@7.0.1

-- gcc ubuntu20.04-x86_64 ---------------------------------------
[email protected] [email protected]

Чтобы избавиться от версии «[email protected]», я изменил файлcompiles.yaml, который представляет собой отдельный файл для хранения информации о доступных компиляторах.

В моем случае я сделал:

компакт-диск ~/.spack/линукс
компиляторы emacs.yaml и 

и нашел (показываю только часть, относящуюся к компилятору gcc):

компиляторы:
- компилятор:
        спецификация: [email protected]
        пути:
          копия: /usr/bin/gcc-7
          схх: ноль
          f77: /usr/bin/gfortran-7
          ФК: /usr/bin/gfortran-7
        флаги: {}
        операционная_система: Ubuntu20.04
        цель: x86_64
        модули: []
        среда: {}
        extra_rpaths: []

- компилятор:
    спецификация: [email protected]
    пути:
      копия: /usr/bin/gcc-9
      схх: ноль
      f77: /usr/bin/gfortran-9
      ФК: /usr/bin/gfortran-9
    флаги: {}
    операционная_система: Ubuntu20.04
    цель: x86_64
    модули: []
    среда: {}
    extra_rpaths: []

Чтобы избавиться от [email protected], я просто удалил его часть. Сейчас я проверяю список компиляторов и должен найти:

-- лязг Ubuntu20.04-x86_64 -------------------------------------
лязг@10.0.0 лязг@7.0.1

-- gcc ubuntu20.04-x86_64 ---------------------------------------
[email protected]

И теперь, когда я выполняю команду:

спак установить HPCtoolkit 

ошибка другая. Я получил :

=> Ошибка: CompilerAccessError: компилятор '[email protected]' имеет исполняемые файлы, которые отсутствуют или не являются исполняемыми: ['/usr/bin/gfortran-7', '/usr/bin/gfortran-7']

/home/hakim/spack/lib/spack/spack/build_environment.py:937, в _setup_pkg_and_run:
        934 tb_string = traceback.format_exc()
        935
        936 # создать некоторый контекст из пакета-нарушителя, чтобы мы могли
  >> 937# показать, что тоже.
        938 package_context = get_package_context(tb)
        939
        940 лог-файл = Нет


==> Ошибка: hpctoolkit-2021.05.15-jkofhcw73pap6ciacwcv2mtcv6uf3n2e: пакет не установлен
==> Ошибка: запрос на установку не выполнен. Обратитесь к сообщениям об ошибках для сбойных пакетов.

Я думаю, что компилятор [email protected] был установлен неправильно, так как он сказал мне, что у него есть исполняемые файлы, которые отсутствуют или не являются исполняемыми.

Пробовал с [email protected], [email protected] и [email protected] но тщетно.. (Хочу упомянуть, что все компиляторы установлены в /USR/бен)

Любая помощь, пожалуйста?

флаг hr
Возможно, проблема **не** в том, что у вас неправильный `gcc`, а в том, что у вас **никакой** `g++` не установлен (отсюда `cxx: null`)?
Knud Larsen avatar
флаг by
`sudo apt установить g++`
hakimo2 avatar
флаг cn
@steeldriver Спасибо!
Рейтинг:0
флаг cn

Чтобы исправить эту ошибку, вы должны уточнить путь к g++. В моем случае вот обновленное содержимое моего файлаcompiles.yaml:

компиляторы:
- компилятор:
        спецификация: [email protected]
        пути:
          копия: /usr/bin/gcc-7
          схх: ноль
          f77: /usr/bin/gfortran-7
          ФК: /usr/bin/gfortran-7
        флаги: {}
        операционная_система: Ubuntu20.04
        цель: x86_64
        модули: []
        среда: {}
        extra_rpaths: []

- компилятор:
    спецификация: [email protected]
    пути:
      копия: /usr/bin/gcc-9
      cxx: /usr/bin/g++-9
      f77: /usr/bin/gfortran-9
      ФК: /usr/bin/gfortran-9
    флаги: {}
    операционная_система: Ubuntu20.04
    цель: x86_64
    модули: []
    среда: {}
    extra_rpaths: []

Теперь он должен работать идеально.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.