2015-11-09 5 views
2

У меня есть make-файл в проекте C++ (компилятор: C++ 11). Как вы можете проверить, существует ли конкретный файл, прежде чем удалять его с помощью команды makefile?
Вот код:.Проверка наличия файла перед его удалением в make-файле

bin: charstack.h error.h 
     g++ -Wall -std=c++11 main.cpp charstack.cpp error.cpp -o bin 

run: 
     ./bin.exe 

clean: 
     rm bin.exe 

# This statement removes auto generated backups on my system. 
cl: 
     rm charstack.h~ charstack.cpp~ main.cpp~ makefile~ error.h~ error.cpp~ 

Как бы я чек Makefile, чтобы увидеть генерироваться ли авто ~ резервные файлы существуют, прежде чем пытаться удалить их, когда пользователь переходит

make cl 

в командная строка? Цель здесь состоит, чтобы избежать вывода этих ошибок к терминалу на работы «сделать кл»:

rm: cannot remove `charstack.h~': No such file or directory 
rm: cannot remove `charstack.cpp~': No such file or directory 
rm: cannot remove `main.cpp~': No such file or directory 
rm: cannot remove `error.h~': No such file or directory 
rm: cannot remove `error.cpp~': No such file or directory 
make: *** [cl] Error 1 
+0

Название было лучше раньше. Теперь это (а) без описания, и (б) называет неправильную технологию. –

ответ

6

Честно говоря, это проблема XY, это не связано ни с тем, что проект является C++ один ни то, что он использует спецификацию C++ 11.

Из-за этого заголовок вопроса немного вводит в заблуждение, а также его теги.

В любом случае, вы можете использовать опцию -f. От человека странице rm:

игнорировать несуществующие файлы и аргументы, никогда не незамедлительные

Таким образом, достаточно использовать следующую строку:

rm -f charstack.h~ charstack.cpp~ main.cpp~ makefile~ error.h~ error.cpp~ 

На самом деле, это не проверьте, существуют ли эти файлы, но также не жалуются, если они не существуют.

+0

Это действительно канонический подход. –

+0

Легкое исправление. Большое спасибо! –

+0

Добро пожаловать. Не забудьте принять ответ, если он решает вашу проблему, это поможет новичкам и будущим поискам. – skypjack

Смежные вопросы