Задать вопрос
aminought
@aminought

Gtest и Gmock — double free or corruption. Как исправить?

Убил несколько часов на решение данной проблемы, но безуспешно. Для начала, моя конфигурация: Ubuntu 16.04.1, qmake 3.0, cmake 3.5.1, разделяемые библиотеки gtest и gmock, версия 1.8.0. IDE: Qt Creator. Вот минимальная программа для воспроизведения ошибки.
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

Тесты, естественно, проходят успешно, но в самом конце, уже после возвращения из функции main, программа крашится со следующей ошибкой:
* Error in `/home/aminought/QtProjects/build-google_test-Desktop_Qt_5_7_0_GCC_64bit-Debug/google_test': double free or corruption (!prev): 0x0000000001a51270 *

Как справиться с этой проблемой? Очень раздражает.
  • Вопрос задан
  • 409 просмотров
Подписаться 2 Оценить 4 комментария
Решения вопроса 1
aminought
@aminought Автор вопроса
В общем, не знаю, почему, но простая замена разделяемых библиотек на статические решила проблему.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы