J'ai perdu beaucoup d'heures pour résoudre ce problème, mais sans succès. Au début, ma configuration: Ubuntu 16.04.1, qmake 3.0, cmake 3.5.1, bibliothèques gtest et gmock partagées, version 1.8.0. J'utilise Qt Creator, et c'est un petit exemple de programme minimal qui mène au béguin.Gtest et Gmock - double gratuit ou corruption
main.cpp:
#include <iostream>
#include <gtest/gtest.h>
#include <gmock/gmock.h>
using namespace std;
class A {
void print() {
std::cout << "PRINT" << std::endl;
}
};
class B: public A {
MOCK_METHOD0(print, void());
};
TEST(MOCK, TEST) {
B b;
}
int main(int argc, char *argv[])
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
google_test.pro:
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
LIBS += -lgtest -lgmock
Les tests sont OK, mais à la fin du programme je reçois cette erreur:
* Erreur dans `/home/aminought/QtProjects/build-google_test-Desktop_Qt_5_7_0_GCC_64bit-Debug/google_test ': double gratuit ou corruption (! prev): 0x0000000001a51270 *
Comment réparer cette erreur? Très ennuyant.
J'ai exécuté votre code et je n'ai pas eu cette erreur. gtest 1.8.0.1, gmock 1.8.0.1, QMake version 3.0, Qt version 5.7.1, cmake 3.7.1.1 – eyllanesc
Mise à niveau vers cmake 3.7.1 et g ++ 5.4.1. Maintenant l'erreur semble si: *** Erreur dans '/ home/aminought/QtProjects/build-google_test-Desktop_Qt_5_7_0_GCC_64bit-débogage/google_test ': libre(): pointeur invalide: 0x0000000001864fb0 *** – logumanov
Je suis utiliser: g ++ (GCC) 6.2.1 20160830 – eyllanesc