make
é a ferramenta de que você precisa. Você só precisa digitar make
com o Makefile
no lugar e seu arquivo será criado.
Aqui está um Makefile simples que geraria o arquivo newFileName
de acordo com a linha que você postou na pergunta:
MYFLAGS=$(shell pkg-config --cflags --libs opencv)
newFileName: file.cpp
$(CXX) $< -o $@ $(MYFLAGS)
Se você colocar isso em seu diretório de código, simplesmente digite make
e seu código será compilado.
Breve explicação:
-
make
procurará o Makefile no diretório; - Como o arquivo está lá,
make
executará a primeira regra: newFileName e a executará; - Esta sintaxe de regra é a seguinte:
-
newFileName:
define o nome da regra, ou destino, preferencialmente o nome do arquivo que a regra vai rodar; - Tudo após o
:
são pré-requisitos, ou seja, arquivos que serão necessários para a execução da receita desta regra ou regras que devem ser executadas antes; - A (s) linha (s) abaixo é a receita (observe os 4 espaços no início da linha), eles dizem como fazer o arquivo
newFileName
.
-
-
$(CXX)
será expandido para o compilador C ++ padrão eMYFLAGS
será expandido para a saída depkg-config --cflags --libs opencv
.
Bônus: o Make executará a receita de uma regra somente se os pré-requisitos tiverem sido alterados após o carimbo de data e hora da criação do destino, portanto, se você digitar make
e já tiver um date newFileName, você não perderá tempo recompilando algo que você já possui. Isso é especialmente bom quando você tem muitos arquivos.