2013-01-07 18 views
5

Khi xây dựng một thử nghiệm với QTestLib, tôi nhận được một "biểu tượng không xác định" lỗi cho một hàm qCompare:ký Undefined cho QCompare

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

Trả lời

5

Bạn có thể giải mã các biểu tượng đã bị đọc sai bằng cách đi qua nó thông qua c++filt trong một lệnh shell:

echo __ZN5QTest8qCompareIimEEbRKT_RKT0_PKcS8_S8_i | c++filt 

... mà in một hàm C++ chữ ký như thế này:

bool QTest::qCompare<int, unsigned long>(int const&, unsigned long const&, char const*, char const*, char const*, int) 

Hai đối số cho macro QCOMPARE - tức là, hai đối số mẫu cho hàm qCompare - phải có cùng loại chính xác. Ví dụ: bạn gặp lỗi, nếu một người là int và người kia là size_t.

+2

... vì vậy giải pháp là để static_cast các loại hoặc, trong trường hợp ofliterals, sử dụng đúng loại bằng cách sử dụng "0ul" vv –

Các vấn đề liên quan