Question

Quelqu'un at-il dans Visual Studio 2010 et construit avec succès gmock gtest? Je l'ai essayé avec la version 1.5.0, mais je ne reçois que des erreurs de compilation incompréhensible.

Était-ce utile?

La solution

J'ai trouvé ce en groupe Google sur les problèmes trouvés lors de la construction gmock-1.5.0 sous VS2010. A la suite du fil, j'ai créé un petit fichier readme, qui a travaillé pour moi, donc la voici:

  • Télécharger gmock 1.5.0 de Google Mock .
  • Extrait de dossier de la bibliothèque sur la machine (par exemple C: \ Libs \ gmock-1.5.0). A partir de maintenant, ce dossier sera reffered comme « GMOCK_ROOT ».
  • Ouvrir VS2010 et charger la solution: GMOCK_ROOT \ MSVC \ gmock.sln. Laissez VS convertir de VS2008 à VS2010. Important! NE PAS double-cliquez sur le fichier de solution sous GMOCK_ROOT \ msvc. Il en est résulté une mauvaise conversion.
  • Effectuez les modifications suivantes aux sources selon le fil :

    • dans le projet gmock -> Header fichiers privés -> gmock-utils.h-interne:

      • les lignes 201, 202: commentaire sur les fonctions 'aide':

      char Helper(To);

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

      • lignes 210-219: remplacer toute la section #ifdef..#endif avec:

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

    • dans le projet gmock_test -> fichiers source -> gmock-printers_test.cc, ligne 848: effectuer une coulée explicite de l'argument NULL à void*, sinon VS considérerons automatiquement est un int null. La ligne résultante devrait ressembler à ceci:

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

      1. Générez la solution. Cela devrait se traduire par 4 avertissements, qui, comme décrit ci-dessous, sont (probablement) OK.

Hope this helps,

Boaz


VS2010 avertissements de compilation de l'étape 5 (voir les remarques à la fin):

  

Avertissement 1 avertissement C4996:   'Std :: _ Copy_impl': appel de fonction avec   paramètres qui peuvent être dangereux - ce   appel repose sur l'appelant pour vérifier   que les valeurs transmises sont correctes. À   désactiver cet avertissement, l'utilisation   -D_SCL_SECURE_NO_WARNINGS. Voir la documentation sur l'utilisation de Visual C ++   '' C cochés itérateurs: \ Program Files   (X86) \ Microsoft Visual Studio   10.0 \ VC \ include \ xutility 2227 1

     

Avertissement 2 Avertissement C4996:   'Std :: _ Copy_impl': appel de fonction avec   paramètres qui peuvent être dangereux - ce   appel repose sur l'appelant pour vérifier   que les valeurs transmises sont correctes. À   désactiver cet avertissement, l'utilisation   -D_SCL_SECURE_NO_WARNINGS. Voir la documentation sur l'utilisation de Visual C ++   '' C cochés itérateurs: \ Program Files   (X86) \ Microsoft Visual Studio   10.0 \ VC \ include \ xutility 2227 1

     

Avertissement 4 Avertissement C4413:   'Std :: tr1 :: _ Cons_node <_Car, _Cdr> :: _ Valeur'   : Élément de référence est initialisé à un   temporaire qui ne persiste pas après   les sorties du constructeur C: \ Program Files   (X86) \ Microsoft Visual Studio   10.0 \ VC \ include \ tuple 137 1

     

Avertissement 3 avertissement C4373:   'Test :: gmock_generated_function_mockers_test :: :: MockFoo TakesConst':   remplacements de fonctions virtuelles   'Test :: gmock_generated_function_mockers_test :: :: FooInterface TakesConst',   les versions précédentes du compilateur fait   non seulement le mode prioritaire lorsque les paramètres   diffèrent par const / volatile   qualificatifs C: \ Libs \ gmock-1.5.0 \ test \ gmock-generated-function-mockers_test.cc 133 1

Remarques concernant les avertissements:

  1. 1,2 avertissements sont sur Copy () dans xutility étant déconseillée en raison de safty. Comme la bibliothèque maquette ne fait pas partie de la version de production, c'est OK par moi.
  2. Avertissement 4 est OK selon le fil.
  3. Avertissement 3:. Pas sûr, mais tout semble bien fonctionner

Autres conseils

si quelqu'un a un problème de construction de la solution gmock elle-même, qui ne peut générer les fichiers .lib, ce fait pour moi (vs 2015):

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

  

gmock_config.props contient une définition dépassée de GTestDir:   <GTestDir>../../gtest</GTestDir>

     

Remplacez-le par <GTestDir>../../../googletest</GTestDir> et vous   devrait aller au-delà de votre erreur.

Au moins les libs ont été compilées, j'ai toujours eu l'erreur gmock_test cependant, malgré le changement, il a suggéré.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top