7

使用 QTestLib 构建测试时,我收到一个qCompare函数的“未定义符号”错误:

Undefined symbols for architecture x86_64:
  "__ZN5QTest8qCompareIimEEbRKT_RKT0_PKcS8_S8_i", referenced from:
      __ZN15MyTestClass22myTestFunctionEv in MyTestClass.o
4

1 回答 1

8

c++filt您可以通过在 shell 命令中传递损坏的符号来破译它:

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函数的两个模板参数——必须具有完全相同的类型。例如,如果一个是 anint而另一个是 a ,则会出现错误size_t

于 2013-01-07T15:33:00.327 回答