Неопределенные символы для QCompare
При создании теста с QTestLib я получаю ошибку "неопределенные символы" для qCompare
функция:
Undefined symbols for architecture x86_64:
"__ZN5QTest8qCompareIimEEbRKT_RKT0_PKcS8_S8_i", referenced from:
__ZN15MyTestClass22myTestFunctionEv in MyTestClass.o
1 ответ
Решение
Вы можете расшифровать искаженный символ, передав его через c++filt
в команде оболочки:
echo __ZN5QTest8qCompareIimEEbRKT_RKT0_PKcS8_S8_i | c++filt
... который печатает сигнатуру функции C++ следующим образом:
bool QTest::qCompare<int, unsigned long>(int const&, unsigned long const&, char const*, char const*, char const*, int)
Два аргумента к QCOMPARE
макрос - т.е. два аргумента шаблона qCompare
Функция - должна иметь точно такой же тип. Вы получаете ошибку, например, если один из int
а другой size_t
,