Я пытаюсь установить hpctoolkit
, используя Spack
. Для этого я выполнил:
git clone https://github.com/spack/spack.git
cd spack/share/spack
source setup-env.sh
spack fetch -D hpctoolkit
spack install hpctoolkit
Я не могу выполнить последнюю команду, потому что получаю следующую ошибку:
Error: ProcessError: Command exited with status 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' '--without-icu'
Мне порекомендовали взглянуть на журнал сборки, отобразив следующее сообщение:
See build log for details:
/tmp/hakim/spack-stage/spack-stage-boost-1.76.0-oc2u6jxritfsbci4xkhr5lov3i4o4riq/spack-build-out.txt
и предыдущий файл содержит:
A C++11 capable compiler is required for building the B2 engine.
Toolset 'gcc' does not appear to support C++11.
> g++ -x c++ -std=c++11 check_cxx11.cpp
ERROR: Compiler 'gcc@9.3.0' does not support compiling C++ programs.
Чтобы отобразить компиляторы, я использовал команду:
spack compiler list
, и результат:
==> Available compilers
-- clang ubuntu20.04-x86_64 -------------------------------------
clang@10.0.0 clang@7.0.1
-- gcc ubuntu20.04-x86_64 ---------------------------------------
gcc@9.3.0 gcc@7.5.0
Чтобы избавиться от версии (скрытой), я изменил compilers.yaml, который является отдельный файл для хранения информации о доступных компиляторах.
В моем случае я сделал:
cd ~/.spack/linux
emacs compilers.yaml &
и нашел (я показываю только часть, относящуюся к компилятору gcc):
compilers:
- compiler:
spec: gcc@7.5.0
paths:
cc: /usr/bin/gcc-7
cxx: null
f77: /usr/bin/gfortran-7
fc: /usr/bin/gfortran-7
flags: {}
operating_system: ubuntu20.04
target: x86_64
modules: []
environment: {}
extra_rpaths: []
- compiler:
spec: gcc@9.3.0
paths:
cc: /usr/bin/gcc-9
cxx: null
f77: /usr/bin/gfortran-9
fc: /usr/bin/gfortran-9
flags: {}
operating_system: ubuntu20.04
target: x86_64
modules: []
environment: {}
extra_rpaths: []
Чтобы избавиться от (скрытой), я просто удалил ее часть. Я проверяю список компиляторов и должен найти:
-- clang ubuntu20.04-x86_64 -------------------------------------
clang@10.0.0 clang@7.0.1
-- gcc ubuntu20.04-x86_64 ---------------------------------------
gcc@7.5.0
И теперь, когда я выполняю команду:
spack install hpctoolkit
, ошибка другая. Я получаю:
=> Error: CompilerAccessError: Compiler 'gcc@7.5.0' has executables that are missing or are not executable: ['/usr/bin/gfortran-7', '/usr/bin/gfortran-7']
/home/hakim/spack/lib/spack/spack/build_environment.py:937, in _setup_pkg_and_run:
934 tb_string = traceback.format_exc()
935
936 # build up some context from the offending package so we can
>> 937 # show that, too.
938 package_context = get_package_context(tb)
939
940 logfile = None
==> Error: hpctoolkit-2021.05.15-jkofhcw73pap6ciacwcv2mtcv6uf3n2e: Package was not installed
==> Error: Installation request failed. Refer to reported errors for failing package(s).
Я думаю, что (скрытый) компилятор был неправильно установлен, поскольку он сказал мне, что у него есть исполняемые файлы, которые отсутствуют или не являются исполняемыми.
Я пробовал использовать (hidden) (hidden) и (hidden), но тщетно .. (я хочу упомянуть, что все компиляторы установлены в / usr / bin
)
Любая помощь, пожалуйста?
Чтобы исправить эту ошибку, необходимо уточнить путь к g ++. В моем случае это обновленное содержимое моего файла compilers.yaml:
compilers:
- compiler:
spec: gcc@7.5.0
paths:
cc: /usr/bin/gcc-7
cxx: null
f77: /usr/bin/gfortran-7
fc: /usr/bin/gfortran-7
flags: {}
operating_system: ubuntu20.04
target: x86_64
modules: []
environment: {}
extra_rpaths: []
- compiler:
spec: gcc@9.3.0
paths:
cc: /usr/bin/gcc-9
cxx: /usr/bin/g++-9
f77: /usr/bin/gfortran-9
fc: /usr/bin/gfortran-9
flags: {}
operating_system: ubuntu20.04
target: x86_64
modules: []
environment: {}
extra_rpaths: []
Теперь он должен работать безупречно.