|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
[Visual Studio 2005] Dipendenze
Colleghi,
ho un problema vecchio come il C: le dipendenze. Ho una solution contenente un centinaio di progetti, i quali ovviamente condividono molti header file. In caso di modifica di un file di inclusione, NON SEMPRE vengono ricompilati i progetti interessati, o quanto meno non tutti! Siccome questo puo' dare un sacco di problemi (di quelli inspiegabili), ogni volta ci si riduce a ricompilare tutto, perdendo parecchie ore. Come risolvere il problema? Ho gia' guardato su Internet/MSDN ed il suggerimento e' quello di usare MSBuild invece di creare i "soliti" progetti. Pero' non ho trovato nulla sul motivo: come fa MSBuild a risolvere questi problemi? E non ho trovato nulla nemmeno su COME dire a MSBuild di risolvere questo problema. Tant'e' vero che, con una semplice prova, non lo risolve... Qualcuno ha qualche esperienza? Ammetto di rimpiangere i makefile del System V...
__________________
In God we trust; all others bring data Ultima modifica di sottovento : 31-08-2008 alle 10:06. Motivo: Errore di ortografia |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
una cosa che potresti provare è isolare tutti gli headers in un progetto a parte da cui dipendono tutti gli altri. il progetto chiaramente non deve produrre alcuna immagine eseguibile, deve essere il cosiddetto "Utility project".
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Tuttavia, mi sembra manchi ancora qualcosa: come tutti i sistemi per il build incrementale, Visual fa un confronto con le date fra sorgente/oggetto. La modifica di un include non cambierebbe la data del sorgente .cpp (rendendo obsoleto il suo .obj), quindi non lo si ricompilerebbe. Potrebbe funzionare se facessi un makefile, e definissi un nuovo tipo di file, magari chiamato .copia (o quant'altro). Questo nuovo tipo di file lo potrei far dipendere dall'include e, una volta stabilito che occorre fare il build del file, copierei l'header stesso. Insomma, qualcosa del tipo: Codice:
myfile.copia: myfile.h copy myfile.h myfile.copia Pensi che si possa fare utilizzando i progetti di Visual? Vedi altre soluzioni?
__________________
In God we trust; all others bring data |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:18.