我已經浪費了很多小時來解決這個問題,但沒有成功。起初,我的配置:Ubuntu 16.04.1,qmake 3.0,cmake 3.5.1,共享gtest和gmock庫,版本1.8.0。我使用Qt Creator,這是導致迷戀的最小程序的一個小例子。Gtest和Gmock - 雙重免費或腐敗
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
測試是確定的,但在節目的最後我得到這個錯誤:
*錯誤的`/home/aminought/QtProjects/build-google_test-Desktop_Qt_5_7_0_GCC_64bit-Debug/google_test':double free或corruption(!prev):0x0000000001a51270 *
如何解決此錯誤?很煩人。
我已經執行了你的代碼,我沒有得到那個錯誤。 gtest 1.8.0.1,gmock 1.8.0.1,QMake 3.0版,Qt 5.7.1版,cmake 3.7.1.1 – eyllanesc
升級到cmake 3.7.1和g ++ 5.4.1。現在的錯誤看起來是這樣的: ***錯誤'/ home/aminought/QtProjects/build-google_test-Desktop_Qt_5_7_0_GCC_64bit-Debug/google_test':free():無效指針:0x0000000001864fb0 *** – logumanov
我使用:g ++(GCC) 6.2.1 20160830 – eyllanesc