使用QTestLib构建测试时,qCompare
函数出现“未定义符号”错误:
Undefined symbols for architecture x86_64:
"__ZN5QTest8qCompareIimEEbRKT_RKT0_PKcS8_S8_i", referenced from:
__ZN15MyTestClass22myTestFunctionEv in MyTestClass.o
答案 0 :(得分:5)
您可以通过在shell命令中通过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
。