Uso GoogleTest per testare i miei progetti C++ e dopo aver scoperto che le librerie precompilate non erano più distribuite nel pacchetto di Ubuntu, ho trovato quanto segue sul sito web del progetto:È sicuro collegarsi a una libreria statica costruita con diversi flag di compilatore
Se si compila Google prova e il tuo codice di prova utilizzando diversi compilatore bandiere, perché vedano le diverse definizioni della stessa classe di /funzione/variabile (ad esempio, a causa dell'uso di #if in Google prova). Pertanto, per la salute mentale, si consiglia di evitare l'installazione di librerie di test Google precompilate . Invece, ogni progetto deve compilare Google Test stesso in modo tale da essere certi che gli stessi flag vengano utilizzati sia per Google Test che per i test.
Quello che ne ricavo è che è una cattiva idea compilare GoogleTest separatamente dal progetto in fase di test. Quello che non capisco è se questa è solo una cosa di GoogleTest, o se questa è una cosa generale per il collegamento di librerie.
Domanda
C'è qualche situazione in cui non è sicuro per creare un collegamento a precompilati librerie di terze parti, flag di compilazione o altro, e se no, che cosa c'è di così speciale GoogleTest?
Il tuo preventivo sembra che manchi la parte importante: 'Se compili Google Test e il tuo codice di test utilizzando diversi flag del compilatore, potrebbero vedere diverse definizioni della stessa classe/funzione/variabile (ad esempio, a causa dell'uso di #if in Google Test).' –
Ho aggiornato la citazione con il bit che hai indicato. –