Следуя руководству по установке на официальном сайте Chisel, я пришел до точки, где я должен проверить, правильно ли была выполнена установка. Это приводит к ошибке:
set -e -o pipefail; "sbt" -Dsbt.log.noformat=true -DchiselVersion="2.+" "run Parity --genHarness --compile --test --backend c --vcd --targetDir /home/me/chisel-tutorial/generated/examples " | tee /home/me/chisel-tutorial/generated/examples/Parity.out
/bin/bash: sbt: command not found
make: *** [/home/me/chisel-tutorial/generated/examples/Parity.out] Error 127
Есть еще один вопрос относительно той же проблемы, здесь, где предлагается добавить SHELL=/bin/bash
в Makefile. У меня это не сработало. Другое предложение - удалить set -e -o pipefail
: это предложение действительно работает, но можно ли удалить эту опцию? Что это делает?
Edit_1:
Я установил sbt и добавил его путь в переменную PATH.
$ which sbt
/usr/bin/sbt
Но все же я получаю эту ошибку при запуске make Parity.out
set -e -o pipefail; "sbt" -Dsbt.log.noformat=true -DchiselVersion="2.+" "run Parity --genHarness --compile --test --backend c --vcd --targetDir /home/me/chisel-tutorial/generated/examples " | tee /home/me/chisel-tutorial/generated/examples/Parity.out
/bin/sh: 1: set: Illegal option -o pipefail
make: *** [/home/me/chisel-tutorial/generated/examples/Parity.out] Error 2
Если я отредактирую эту часть файла suffix.mk:
$(objdir)/%.dot: %.scala
set -e -o pipefail; "$(SBT)" $(SBT_FLAGS) "run $(notdir $(basename $<)) --backend dot --targetDir $(objdir) $(CHISEL_FLAGS)"
$(objdir)/%.out: %.scala
set -e -o pipefail; "$(SBT)" $(SBT_FLAGS) "run $(notdir $(basename $<)) --genHarness --compile --test --backend c --vcd --targetDir $(objdir) $(CHISEL_FLAGS)" | tee $@
Удалив параметр -o в set -e -o pipefail
, он работает, я получаю сообщение ПРОШЕЛ и [успех] после запуска $ make Parity.out
. Так, что происходит?
Edit_2:
Теперь он работает нормально после того, как я добавил SHELL=/bin/bash
в Makefile, поэтому сначала проблема заключалась в отсутствии sbt, как указал Натаниэль, а затем при редактировании Makefile для включения SHELL=/bin/bash
.