Visual Studio 2010 non collega automaticamente le librerie statiche ai progetti che dipendono come dovrebbe

  • Creare una nuova soluzione con un progetto da riga di comando della console C ++
  • Crea un nuovo progetto, una libreria statica C ++
  • Rendere il progetto della riga di comando dipende dalla libreria
  • Assicurati che “Dipendenze libreria link” sia triggersto in Configurazione => Linker => Generale (è di default)
  • Visual Studio non collegherà ancora la libreria.

Come posso risolvere questo? Ha funzionato in Visual Studio 2008.

Funziona ancora, ma è stato modificato in VS 2010:

“Con VS2010, abbiamo smesso di supportare le dipendenze del progetto definendo riferimenti impliciti e abbiamo anche introdotto un nuovo modo di definire le dipendenze del progetto a livello di progetto, dal momento che un riferimento al progetto e una dipendenza del progetto sono concetti vicini, entrambi applicati a un progetto li hanno rappresentati insieme, in modo coerente, nel file di progetto Come si vedrà nei frammenti seguenti, l’unica differenza tra una definizione di riferimento del progetto e una definizione di dipendenza del progetto consiste in metadati che definiscono l’inclusione / esclusione dell’assembly di output in / dalla riga di comando del collegamento del progetto principale Sebbene non sia stata rimossa la finestra di dialogo “Dipendenze del progetto”, è consigliabile definire nuove dipendenze del progetto tramite la finestra di dialogo “Quadro e riferimenti”. È necessario impostare la proprietà “Output gruppo di riferimento” nella pagina delle proprietà Interfaccia utente a false per una dipendenza del progetto e true per un riferimento al progetto. ”

Basta fare clic con il tasto destro del mouse sul progetto della console, selezionare “Proprietà-> Proprietà comuni-> Framework e riferimenti-> Aggiungi nuovo riferimento” e aggiungere il progetto della libreria statica; controlla anche che “Dipendenze libreria link” sia True sul lato destro. Sembra funzionare per il debug e rilascia build. Si impara qualcosa di nuovo ogni giorno. 😉

Hanno cambiato l’interfaccia utente per l’aggiunta di dipendenze del progetto C ++ in VS2010, ma abbastanza stranamente, senza rimuovere la vecchia interfaccia utente, o in alcun modo indicando che non funziona più.

Per creare la dipendenza in VS2010, è necessario utilizzare “Aggiungi nuovo riferimento” (può essere trovato nelle proprietà del progetto), e forse anche nel menu di scelta rapida del progetto (non avere VS qui per controllare)

La vecchia finestra di dialogo “Dipendenze del progetto” è fondamentalmente interrotta ora.

Credo che la vecchia interfaccia utente (dipendenze) influenzi l’ordine di costruzione di Visual Studio, quando si costruisce dall’interno dell’IDE, per informazioni. Il nuovo sistema di configurazione del progetto incorpora i riferimenti in ogni file di progetto in modo che sia ansible creare all’esterno dell’IDE (mentre nelle versioni precedenti non è ansible, perché non si otterrebbe il collegamento automatico per le dipendenze, poiché le dipendenze venivano eseguite solo a livello di soluzione ).

Ci sono anche alcuni problemi con progetti più complessi nel nuovo sistema; in particolare, tutti i progetti binari risultanti devono avere riferimenti espliciti a ogni libreria dipendente da compilare correttamente, mentre in precedenza potevano essere effettivamente ereditati da altre librerie dipendenti. La stessa causa sottostante, però.