Мне часто приходится компилировать небольшие программы и запускать их. Поскольку каждый раз для каждого файла cpp было утомительно писать команду компиляции g++ -W -Wall file.cpp -o out
, я написал один маленький скрипт, который выполняет компиляцию.
Вот сценарий, который я написал
#!/bin/bash
g++ -W -Wall $1 -o $1.out
Итак, если мне нужно скомпилировать файл file.cpp, я сделаю compile file.cpp
, и он создаст для меня file.cpp.out
исполняемый файл.
И такой файл .cpp не имеет никаких заголовочных файлов или любых других зависимостей.
Я знаю, как написать make-файл для определенного файла .cpp вот так (очень простой случай)
file: file.cpp
g++ -W -Wall file.cpp -o file
но если мне нужно скомпилировать file2.cpp, мне придется снова изменить вышеупомянутый makefile или написать новый. Итак, что я хочу сделать, так это то, что когда я даю команду make file.cpp
, она создает файл как исполняемый файл. И когда я даю make file2.cpp
, он создает file2 как исполняемый файл, и аналогично для других файлов cpp.