Tôi muốn tạo các bài kiểm tra đơn vị cho một dự án Visual C++. Tôi đã thử theo dõi these MSDN instructions. Tôi đã tìm thấy các trang mà họ phân biệt giữa mã không được quản lý/hỗn hợp/thuần túy, nhưng tôi không hiểu đầy đủ các khái niệm đó. Mã của tôi không sử dụng .NET và có khả năng biên dịch theo MinGW với một vài điều chỉnh mã.Các phần bên ngoài chưa được giải quyết khi biên dịch các bài kiểm tra đơn vị cho Visual C++ 2012
Dự án chính của tôi xây dựng một tệp thực thi, vì vậy tôi đã làm theo các bước dưới Để tham chiếu các hàm đã xuất từ dự án thử nghiệm. Đối với người mới bắt đầu tôi đã lựa chọn dự án khác nhau:
tôi đã đi với Dự án Native Unit Test. Tôi đã thêm tham chiếu vào dự án chính của mình và tôi đặt Bao gồm các thư mục đến $(SolutionDir)\Cubes;$(IncludePath)
. Tôi đã viết mã của tôi và nhận được điều này khi biên soạn:
1>Creating library C:\Users\Pieter\Dropbox\Unief\TTUI\TTUIproject\Cubes\Debug\CubesTest.lib and object C:\Users\Pieter\Dropbox\Unief\TTUI\TTUIproject\Cubes\Debug\CubesTest.exp
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: __thiscall Room::Room(void)" ([email protected]@[email protected]) referenced in function "public: void __thiscall CubesTest::LayoutTest::NumOfRoomsConsistency(void)" ([email protected]@[email protected]@QAEXXZ)
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: __thiscall Layout::Layout(class Room *,int)" ([email protected]@[email protected]@@[email protected]) referenced in function "public: void __thiscall CubesTest::LayoutTest::NumOfRoomsConsistency(void)" ([email protected]@[email protected]@QAEXXZ)
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: void __thiscall Layout::add(int,int,class Room *)" ([email protected]@@[email protected]@@Z) referenced in function "public: void __thiscall CubesTest::LayoutTest::NumOfRoomsConsistency(void)" ([email protected]@[email protected]@QAEXXZ)
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: void __thiscall Layout::clear(int,int,bool)" ([email protected]@@[email protected]) referenced in function [email protected]@[email protected]@QAEXXZ$0
1>C:\Users\Pieter\Dropbox\Unief\TTUI\TTUIproject\Cubes\Debug\CubesTest.dll : fatal error LNK1120: 4 unresolved externals
Nếu tôi không nhầm, điều này có nghĩa là trình biên dịch tìm thấy tệp tiêu đề chứ không phải tệp nguồn. Tôi đang thiếu gì?
Không, đó có nghĩa là mối liên kết ** ** không tìm thấy tập tin nhị phân chứa các ký hiệu tham chiếu của bạn. – SomeWittyUsername
Phải, làm cách nào để cho trình liên kết biết nơi tìm các tệp được yêu cầu? Tôi đã thử [this] (http://i.imgur.com/jitTd.png) mà không thành công. – Pieter
Điều đó sẽ làm được điều này. Ngoài ra hãy chắc chắn rằng bạn * thực sự * biên dịch tất cả các dự án chứa các tệp của bạn (kiểm tra các phụ thuộc) – SomeWittyUsername