Я хочу собрать свою программу, используя make, а затем запустить созданный исполняемый файл с помощью скрипта bash, но bash не может найти исполняемый файл, хотя он был создан, и я могу запустить его вручную. Проблема существует только на Linux Mint 19 в Gnome-терминал.
Изменить: Точное сообщение об ошибке: "/ путь / к / мой / исполняемый файл: нет такого файла или каталога"
У меня есть кроссплатформенный проект, в котором мне нужно запустить cmake, затем собрать проект и, наконец, запустить созданный исполняемый файл. У меня есть скрипт bash для автоматизации процесса:
Изменить: это только часть, которая вызывает проблемы;)
for TASK in $@; do
if [[ $TASK == "make" ]]; then
call cmake here, this creates a .sln or a make file
elif [[ $TASK == "build" ]]; then
if [[ $OS == 'CYGWIN_NT-10.0' ]]; then
MSBuild.exe "./build/debug/myproject.sln"
elif [[ $OS == 'Linux' ]]; then
cd ./build/debug/ && make
else
error...
fi
elif [[ $TASK == "run" ]]; then
if [[ $OS == 'CYGWIN_NT-10.0' ]]; then
./build/debug/Debug/program.exe
elif [[ $OS == 'Linux' ]]; then
./build/debug/program
else
error...
fi
else
error...
fi
done
Вызов "./script.sh make build run" должен, например, вызвать cmake для создания файлов сборки, затем вызвать программу сборки (make для Linux или msbuild для Windows) и затем запустить созданный исполняемый файл. Это прекрасно работает на Windows 10 в терминале Cygwin. В Linux вызов "./script.sh build run" не выполняется, потому что он не может найти исполняемый файл. Однако "./script.sh build && ./build/debug/program" работает хорошо. Удивительно, что «./script.sh build && ./script.sh run» также работает как положено.
Это почему? Есть ли ошибка в скрипте bash? И почему он работает на Cygwin, а не на Linux Mint?