Todos os arquivos .cpp dependem de dois arquivos .h?
Pergunta
Em um Makefile, tenho a seguinte linha:
helper.cpp: dtds.h
O que garante que o Helper.cpp seja reconstruído sempre que o DTDS.H é alterado. No entanto, quero que todos os arquivos do projeto sejam reconstruídos se qualquer um dos dois outros arquivos de cabeçalho mudar, gentil como este:
*.cpp: h1.h h2.h
Obviamente, isso não funciona, mas não sei o caminho certo para fazer Nmake fazer o que eu quero. Alguém pode ajudar? Não quero ter que especificar manualmente que cada arquivo individual depende de H1.H e H2.H.
Obrigado. (Estou usando o Nmake incluído no Visual Studio 2005.)
Solução 2
Obrigado pela sua ajuda, Christoph. Eu tentei:
.cpp.obj: h1.h h2.h
E recebi a mensagem de erro útil:
makefile(58) : fatal error U1086: inference rule cannot have dependents
Acabei resolvendo -o fazendo uma lista dos arquivos que eu queria compilar e adicionando a dependência a toda a lista.
files = file1.obj file2.obj file3.obj
$(files): h1.h h2.h
Outras dicas
Tentar
%.cpp : h1.h h2.h
Isso funciona no GNU Make - não faço ideia se Nmake é compatível ...
Editar: E btw: não deveria ser
helper.o : dtds.h
%.o : h1.h h2.h
Afinal, você não quer refazer o .cpp
Arquivo (Como você faz um arquivo de origem?), Mas recompile ...
Edit2: Verifica a Referência de Nmake. De acordo com isto, algo como
.cpp.obj: h1.h h2.h
Pode funcionar ...