LinuxForum.Fans
Тема

Запуск программы после компиляции

Автор: 5artizan 4 сообщений 3421 просмотров
#346948

Хочу написать скрипт,который после удачной компиляции с помощью компилятора g++ запускал полученную программу.Если во время компиляции компилятор найдет ошибки в коде,то программу не надо запускать.Я написал вот такой скрипт:

text

#!/bin/sh

g++ 1.cpp -o proga proga

Первый вопрос:возможно ли такое?
Второй вопрос:Если да.Как написать условие для проверки удачной компиляции?

#346950

Зачем это, любая современная IDE умеет запускать программы на выполнение, предварительно компилируя исходник. А если в программе есть ошибки, то она просто не соберется. Хотя и критичностью ошибок можно управлять.

#347305

Неправильный скрипт, лучше проверяй, что компиляция прошла без ошибок и только потом запускай, например вот так:

text
g++ 1.cpp -o proga && proga

А в твоём варианте будет запущена proga от предыдущей удачной компиляции.

#347379
"5artizan" написал:
Первый вопрос:возможно ли такое?
конечно. Это нужно.
тут уже сказали как. Иногда можно и по другому:
text
g++ ...
err=$?
if [ $err == 0 ]; then
  # всё хорошо собралось
else
  # что-то пошло не так
fi

но надо сказать, что warning'е это НЕ ошибки (код == 0).

"yars" написал:
любая современная IDE

а ещё есть венда, и есть варез на треккерах. Зачем вы вообще влезли?

"yars" написал:
А если в программе есть ошибки, то она просто не соберется.

ложь. Соберётся. Иной раз даже без warning'ов, с Wall. Вы хоть пару раз собирали?

"yars" написал:
Хотя и критичностью ошибок можно управлять.

некоторые ошибки может исправить только программист, или ИИ, которого не существует. Причём если у вас нормальная IDE(vim например), то только такие ошибки и бывают. Vim всё красным разрисует, если запятую/пробел забыть.

И тесты тоже НЕ помогут, недавно я нашёл ошибку в своём коде, в котором допустимо 27! комбинаций. Это ОЧЕНЬ БОЛЬШОЕ ЧИСЛО. (10888869450418352160768000000) Потребуется 345283785211134 лет, что-бы перебрать все комбинации, если за секунду перебирать 1000000.

А применив голову я осилил за ночь перебрать.

Войдите или зарегистрируйтесь, чтобы ответить.