Domanda

Qualcuno ha costruito con successo gmock e GTEST in Visual Studio 2010? Ho provato con la versione 1.5.0, ma ho solo errori di compilazione incomprensibili.

È stato utile?

Soluzione

Ho trovato questo in google gruppi su problemi trovati nella costruzione gmock-1.5.0 sotto VS2010. Seguendo il filo, ho creato un breve file readme, che ha lavorato per me, ecco che è:

  • Scarica gmock 1.5.0 da Google Mock .
  • Estratto di cartella della libreria sulla macchina (ad esempio C: \ Libs \ gmock-1.5.0). D'ora in poi, questa cartella sarà A riferiti come 'GMOCK_ROOT'.
  • Apri VS2010, e caricare la soluzione: GMOCK_ROOT \ msvc \ gmock.sln. Lasciate VS convertirlo da VS2008 a VS2010. Importante! Non fare doppio clic sul file di soluzione sotto GMOCK_ROOT \ msvc. Ciò ha provocato una cattiva conversione.
  • Eseguire le seguenti modifiche alle fonti secondo il filo :

    • nel progetto gmock -> File di intestazione privata -> gmock-interno-utils.h:

      • linee 201, 202: commento delle funzioni 'aiuto':

      char Helper(To);

      static char (&Helper(...))[2]; // NOLINT

      • linee 210-219: sostituire l'intera sezione #ifdef..#endif con:

      static const bool value = std::is_convertible<From, To>::value;

    • nel progetto gmock_test -> File di origine -> gmock-printers_test.cc, linea 848: eseguire un cast esplicito dell'argomento NULL per void*, altrimenti VS riguarderà automaticamente è un int nullo. La linea risultante dovrebbe essere simile a questo:

      t10(false, 'a', 3, 4, 5, 1.5F, -2.5, str, static_cast<void*>(NULL), "10");

      1. Generare la soluzione. Ciò dovrebbe tradursi in 4 avvertimenti, che, come descritto di seguito, sono (probabilmente) OK.

Spero che questo aiuti,

Boaz


VS2010 compilatore avvertimenti dal punto 5 (vedi note alla fine):

  

Attenzione 1 avvertimento C4996:   'Std :: _ Copy_impl': chiamata di funzione con   parametri che possono essere pericolosi - questo   chiamata si basa sul chiamante per controllare   che i valori passati siano corretti. Per   disattivare questo avviso, l'uso   -D_SCL_SECURE_NO_WARNINGS. Vedere la documentazione su come utilizzare Visual C ++   C 'Controllato Iteratori': \ Program Files   (X86) \ Microsoft Visual Studio   10.0 \ VC \ include \ xutility 2227 1

     

Attenzione 2 C4996 di avviso:   'Std :: _ Copy_impl': chiamata di funzione con   parametri che possono essere pericolosi - questo   chiamata si basa sul chiamante per controllare   che i valori passati siano corretti. Per   disattivare questo avviso, l'uso   -D_SCL_SECURE_NO_WARNINGS. Vedere la documentazione su come utilizzare Visual C ++   C 'Controllato Iteratori': \ Program Files   (X86) \ Microsoft Visual Studio   10.0 \ VC \ include \ xutility 2227 1

     

Attenzione 4 C4413 di avviso:   'Std :: tr1 :: _ Cons_node <_Car, _Cdr> :: _ Valore'   : Organo di riferimento viene inizializzato su un   temporanea che non persistere dopo   il costruttore uscite C: \ Program Files   (X86) \ Microsoft Visual Studio   10.0 \ VC \ include \ tuple 137 1

     

Attenzione 3 C4373 di avviso:   'Test :: gmock_generated_function_mockers_test :: :: MockFoo TakesConst':   sostituzioni funzione virtuale   'Test :: gmock_generated_function_mockers_test :: :: FooInterface TakesConst',   le versioni precedenti del compilatore hanno fatto   non solo di override quando i parametri   differivano da const / volatili   qualificazioni C: \ Libs \ gmock-1.5.0 \ test \ gmock-generated-function-mockers_test.cc 133 1

Osservazioni relative avvertenze:

  1. avvertenze 1,2 sono in procinto di copia () in xutility essere sconsigliato a causa di safty. Come la libreria finta non è una parte della versione di produzione, questo è OK da me.
  2. Attenzione 4 è secondo OK per il filo .
  3. Avvertimento 3:. Non sono sicuro, ma tutto sembra funzionare bene

Altri suggerimenti

se qualcuno ha un problema costruire la soluzione gmock in sé, che non è in grado di generare i file .lib, questo ha fatto per me (vs 2015):

https://groups.google.com/forum/#!topic/ googlemock / FaEAHedxpAQ

  

gmock_config.props contiene una definizione di obsoleto di GTestDir:   <GTestDir>../../gtest</GTestDir>

     

Sostituirlo con <GTestDir>../../../googletest</GTestDir> e si   dovrebbe andare oltre il vostro errore.

Almeno le librerie sono state compilate, ho ancora ottenuto l'errore gmock_test però, nonostante il cambio ci ha suggerito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top