У меня есть make-файл для установки и компиляции проекта ocaml. Мне нужно установить ocaml 4.07, чтобы использовать некоторые особенности этой версии. После установки opam я скачиваю конкретную версию, но для того, чтобы скомпилировать проект с этой версией, я получаю сообщение от терминала, говорящее
The environment is not in sync with the current switch.
You should run: eval $(opam env)
Я хочу иметь возможность запустить make install
и скомпилировать проект в определенной версии.
Я попытался создать определенное правило для вызываемой команды eval
, а также попытался вызвать оба eval $(opam env)
, eval 'opam config env'
. Но ни один из них, кажется, не работает.
Вот make-файл, который я пытаюсь изменить
#install package dependencies
install:
sudo apt install gcc
sudo add-apt-repository ppa:avsm/ppa
sudo apt update
sudo apt install opam
opam init --yes
sudo opam instal ocaml-base-compiler
#opam init --yes
sudo apt install ocaml-nox
#eval 'opam env'
#eval $(opam env)
#ev
#clear
#run
# Building the world
run: ev depend $(EXEC)
ev:
eval $(opam env)
# Clean up
clear:
rm -f *.cm[io] *.cmx *~ .*~ #*#
rm -f $(GENERATED)
rm -f $(EXEC)
Как мне скомпилировать этот проект с определенной версией, которую я скачал, без необходимости вручную вызывать команду eval
в терминале, или есть другие способы настроить это.