Как я пишу сценарий оболочки так, чтобы, когда я компилирую свою программу C++, она поместила двоичный файл в Двоичный Каталог

Попробуйте сравнить окружение:

$ sudo -s
# diff <(su username -c env) <(sudo -u username bash -c env)

Например, окружение для sudo управляется параметрами env_* по умолчанию в /etc/sudoers .

0
25.03.2015, 19:38
1 ответ

Скрипты оболочки очень похожи на команды, которые вы попадаете в типичном режиме в оболочке. В этом случае параметр -O -O G ++ , где поставить двоичный. Таким образом, вы просто скажете это, вы хотите, чтобы в двоичном каталоге:

g++ lesson01.cpp -o Binary/lesson01

Вы можете запустить это интерактивно (набрав его в оболочку), или вы можете поставить, что в сценарии оболочки - оба сделают то же самое:

#!/bin/sh
g++ lesson01.cpp -o Binary/lesson01

Обычно, однако, вы бы использовали Makefile, чтобы делать такие вещи, а не скрипт оболочки.

all:

Binary/%: %.cpp
    g++ -o "$@" "$<"  # Note: this must be a tab, not spaces. Make is annoying like that

Тогда вы напечатаете сделать двоичный / урок01 и сделать компиляцию программы (если источник новее, чем существующий двоичный файл, или если двоичный не существует). Вы также можете перечислить все программы после этого Все: вверху ( все: двоичный / урок01 двоичный / урок02 , и т. Д.) А затем просто набрать make Составьте все программы по мере необходимости.

Вы также можете сделать более продвинутые вещи с помощью Sake или скрипта Shell (например, чтобы он определил список программ для компиляции, а не в списке их всех), но это более сложная.

2
28.01.2020, 02:36

Теги

Похожие вопросы