2009-10-15 4 views
27

Ho recentemente convertito una soluzione multiprogetto per utilizzare .dlls anziché .libs per ciascuno dei progetti. Tuttavia, ora ricevo un avviso del linker per ciascun progetto come indicato nell'esempio. MSDN non è servito a essere così utile con questo. Perché è questo e come posso risolverlo?LNK4075: ignorare '/ EDITANDCONTINUE' a causa della specifica '/ OPT: ICF'

Attenzione 2 LNK4075 avvertimento: ignorando '/ EDITANDCONTINUE' a causa di '/ OPT: ICF' specifica LudoCamera.obj

+0

Perché è un errore di linker? Ti credo, sono solo inesperto di C++ e studio visivo. Passare da ZI (Program Database Edit and Continue) a Zi (Database del programma) ha reso questi errori scomparsi, ma potrebbe semplicemente nascondere il problema di root. Potresti elaborare? – Mark

+2

@ Mark c'è effettivamente tre fasi di compilazione, (1) parsing - comprensione di ogni file cpp, (2) generazione di codice - generazione di opcode per ciascun file di funzione e (3) linking - collegamento degli opcode per ciascuna funzione. Questo avviso inizia con LNK, che indica che si tratta di un errore del linker. –

+1

È un bel tocco che questo dice ancora "ignorando/EDITANDCONTINUE" quando non c'è l'opzione "/ EDITANDCONTINUE". –

risposta

30

è possibile avere "Modifica e continua" di supporto o ottimizzazioni. Di solito, metti "Modifica e continua" su build di debug e ottimizzazioni sulle build di rilascio.

Modifica e continua consente di modificare il codice mentre si esegue il debug e mantenere solo il programma in esecuzione. Non è supportato se il codice deve essere ottimizzato.

+0

C'è una bandiera specifica che posso passare? Ho passato '\ Zi', ma ricevo comunque questo avviso. – CroCo

+0

È '/', non '\\'. Inoltre, assicurati di averlo scelto sul build (DEBUG o RELEASE) che stai cercando di compilare –

0

So di cosa si tratta, non sono versioni di rilascio. Penso che il linker pensi ancora che siano build di debug, che hanno ancora il debug edit e continuano a funzionare quando il debug è attivo.

Bob.

+0

Ho avuto una lib compilata per il rilascio importato nel progetto di debug e l'avviso è apparso. Qualcosa del genere. – TechNyquist

6

Ho anche avuto questo avviso durante la conversione di un progetto VS2008 da Lib al .dll e la soluzione è stato quello di modificare le impostazioni del linker/ottimizzazione sulla configurazione di debug Win32 da Default per:

Riferimenti = Mantenere Unreferenced dati (/ OPT: NOREF)

Abilita COMDAT pieghevole = Non rimuovere COMDAT ridondanti (/ OPT: NOICF)

13

ho avuto anche questo problema. Ho aperto Proprietà progetto, quindi ho fatto clic su Generale nella scheda C/C++. C'è un'opzione che dice "Debug Information Format", che ho cambiato in Program Database (/ Zi), e non ho ricevuto più l'avviso.

Spero che questo aiuti. Greetz

Richard

Problemi correlati