Frage

Hat jemand erfolgreich gmock und Gtest in Visual Studio 2010 gebaut? Ich habe versucht, mit der Version 1.5.0, aber ich nur unverständlich Kompilierungsfehlern erhalten.

War es hilfreich?

Lösung

Ich fand diesen Faden in google Groups über Probleme gefunden, wenn gmock-1.5.0 unter VS2010 zu bauen. Nach dem Thread habe ich eine kurze Readme-Datei erstellt, die für mich gearbeitet, so ist es hier:

  • Download gmock 1.5.0 von Google Mock .
  • Extract in Bibliothek Ordner auf der Maschine (zum Beispiel C: \ Libs \ gmock-1.5.0). Von nun an wird dieser Ordner als ‚GMOCK_ROOT‘ reffered wird.
  • Öffnen VS2010, und laden Sie die Lösung: GMOCK_ROOT \ msvc \ gmock.sln. Lassen VS es von VS2008 zu VS2010 konvertieren. Wichtig! DO NOT doppelklicken Sie auf die Lösung Datei unter GMOCK_ROOT \ msvc. Das in einem schlechten Conversion geführt.
  • Führen Sie die folgenden Änderungen an Quellen gemäß der Thread :

    • Projekt gmock -> Privat Header-Dateien -> gmock-internal-utils.h:

      • Linien 201, 202: Kommentar aus den 'Helfer' Funktionen:

      char Helper(To);

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

      • Linien 210-219: Ersetzen Sie den gesamten #ifdef..#endif Abschnitt mit:

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

    • in Projekt gmock_test -> Quelldateien -> gmock-printers_test.cc, Zeile 848: ein explizites Gießen des NULL Arguments void* ausführen, sonst VS wird automatisch betrachtet es ein Null-Int. Die sich ergebende Linie sollte wie folgt aussehen:

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

      1. Erstellen Sie die Lösung. Dies sollte in 4 Warnungen führen, die, wie unten beschrieben, sind (wahrscheinlich) OK.

Hope, das hilft,

Boaz


VS2010 Compiler-Warnungen aus Schritt 5 (siehe Bemerkungen am Ende):

  

Warnung 1 Warnung C4996:   'Std :: _ Copy_impl': Funktionsaufruf mit   Parameter, die nicht sicher sein kann - dies   Anruf verlässt sich auf den Anrufer zu überprüfen   dass die übergebenen Werte korrekt sind. Zu   Deaktivieren Sie diese Warnung, Verwendung   -D_SCL_SECURE_NO_WARNINGS. Siehe Dokumentation, wie Visual C ++ verwenden   'Checked Iteratoren' C: \ Program Files   (X86) \ Microsoft Visual Studio   10.0 \ VC \ include \ xutility 2227 1

     

Warnung 2 Warnung C4996:   'Std :: _ Copy_impl': Funktionsaufruf mit   Parameter, die nicht sicher sein kann - dies   Anruf verlässt sich auf den Anrufer zu überprüfen   dass die übergebenen Werte korrekt sind. Zu   Deaktivieren Sie diese Warnung, Verwendung   -D_SCL_SECURE_NO_WARNINGS. Siehe Dokumentation, wie Visual C ++ verwenden   'Checked Iteratoren' C: \ Program Files   (X86) \ Microsoft Visual Studio   10.0 \ VC \ include \ xutility 2227 1

     

Warnung 4 Warnung C4413:   'Std :: tr1 :: _ Cons_node <_Car, _Cdr> :: _ Value'   : Referenzelement ist mit einem initialisierten   vorübergehend das bleibt nicht nach   der Konstruktor Ausfahrten C: \ Program Files   (X86) \ Microsoft Visual Studio   10.0 \ VC \ include \ Tupel 137 1

     

Warnung 3 Warnung C4373:   'Prüfung :: gmock_generated_function_mockers_test :: MockFoo :: TakesConst':   virtuelle Funktion überschreibt   'Prüfung :: gmock_generated_function_mockers_test :: FooInterface :: TakesConst',   vorherige Versionen des Compilers tat   nur nicht überschreiben, wenn die Parameter   durch const unterschied / volatile   Qualifier C: \ Libs \ gmock-1.5.0 \ test \ gmock-generated-function-mockers_test.cc 133 1

Erläuterungen bezüglich Warnungen:

  1. Warnungen 1,2 zu kopieren sind () in xutility aufgrund Safty veraltet ist. Da die Mock-Bibliothek nicht ein Teil der Produktions-Release, das ist in Ordnung von mir.
  2. Warnung 4 ist OK nach dem Thread .
  3. Warnung. 3: nicht sicher, aber alles scheint gut zu funktionieren

Andere Tipps

, wenn jemand ein Problem hat den Aufbau der gmock Lösung selbst, die die LIB-Dateien können nicht erzeugen ist, das hat es für mich (vs 2015):

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

  

gmock_config.props enthält eine veraltete Definition von GTestDir:   <GTestDir>../../gtest</GTestDir>

     

Bitte ersetzen Sie es <GTestDir>../../../googletest</GTestDir> und Sie   sollte Ihre Vergangenheit Fehler.

Mindestens die Libs zusammengestellt wurden, habe ich noch die gmock_test Fehler bekam aber trotz der Änderung dort vorgeschlagen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top