Abbiamo un grande progetto che utilizza VS2008 e incrementa 1_42. Sto cercando di aggiornare a VS2010 e aumentare 1_44. Ho installato VS2010 e potenziato 1_44 e ho convertito il progetto. Ora sto cercando di costruire, e tutto viene compilato, ma non riesce quando si collegano:Perché VisualStudio sta cercando questo file lib? Errore LNK1104
LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc90-mt-1_42.lib'
ho cambiato l'inclusione e lib per puntare a nuovi file spinta 1_44 e ho rinominato la vecchia directory spinta 1_42 .
Perché il linker sta ancora cercando un file vc90-1_42, quando utilizza solo intestazioni 1_44? C'è un modo per determinare perché il linker vuole questo file? Il linker ovviamente pensa che abbia bisogno del file, ma perché?
Ho pulito il progetto e sto ricostruendo per garantire che tutti i vecchi file di costruzione vengano cancellati.
OK, quindi ho scoperto qual era il mio problema, ma vorrei ancora una risposta a "Come posso scoprire perché il linker vuole questo file?". Il mio progetto dipendeva da uno dei nostri file lib creati con boost 1_42. Ho ricompilato il file lib con boost 1_44 e l'errore del linker sul progetto principale è andato via. C'è qualche registro o utilità che avrei potuto vedere per vedere che stava succedendo? – JPhi1618
Sono abbastanza sicuro che non ci sia. Questo tipo di informazioni ("need to link to some_lib") è probabilmente sepolto in profondità nei file generati obj e lib. –