Неопределенные символы для 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,

Другие вопросы по тегам