Tôi gặp lỗi này, nhưng tôi không biết làm thế nào để sửa chữa nó.
Tôi đang sử dụng Visual Studio 2013. Tôi đặt tên giải pháp là MyProjectTest Đây là cấu trúc của giải pháp thử nghiệm của tôi:
- function.h
#ifndef MY_FUNCTION_H
#define MY_FUNCTION_H
int multiple(int x, int y);
#endif
-function.cpp
#include "function.h"
int multiple(int x, int y){
return x*y;
}
- main.cpp
#include <iostream>
#include <cstdlib>
#include "function.h"
using namespace std;
int main(){
int a, b;
cin >> a >> b;
cout << multiple(a, b) << endl;
system("pause");
return 0;
}
Tôi là người mới bắt đầu; đây là một chương trình đơn giản và nó chạy không có lỗi. Tôi đọc trên internet và bắt đầu quan tâm đến bài kiểm tra đơn vị, vì vậy tôi đã tạo một dự án thử nghiệm:
Tệp> Mới> Dự án ...> Đã cài đặt> Mẫu> Visual C ++> Kiểm tra> Dự án kiểm tra đơn vị bản địa>
Tên: UnitTest1 Giải pháp: Thêm vào giải pháp Sau đó, vị trí tự động chuyển sang đường dẫn của giải pháp đang mở hiện tại Đây là cấu trúc thư mục của giải pháp:
Tôi chỉ chỉnh sửa tệp unittest1.cpp:
#include "stdafx.h"
#include "CppUnitTest.h"
#include "../MyProjectTest/function.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestEqual)
{
Assert::AreEqual(multiple(2, 3), 6);
// TODO: Your test code here
}
};
}
Nhưng tôi gặp lỗi LNK2019: ký hiệu bên ngoài chưa được giải quyết. Tôi biết rằng việc triển khai nhiều hàm bị thiếu. Tôi đã cố gắng xóa tệp function.cpp và tôi đã thay thế khai báo bằng định nghĩa và nó chạy. Nhưng việc viết cả khai báo và định nghĩa trong cùng một tệp không được khuyến khích. Làm thế nào tôi có thể sửa lỗi này mà không làm điều đó? Tôi có nên thay thế bằng #include "../MyProjectTest/function.cpp"
trong tệp unittest.cpp không?
(Tôi không giỏi tiếng Anh lắm. Cảm ơn)
.LIB
phần mở rộng tệp. Để làm phức tạp mọi thứ ... thư viện liên kết động (tức là *.DLL
) có thể có một thư viện nhập đi kèm cũng có .LIB
phần mở rộng tệp. Thư viện nhập này liệt kê tất cả các tiện ích được cung cấp bởi *.DLL
. Để biết thêm thông tin, vui lòng đọc: Hướng dẫn dành cho người mới bắt đầu với người liên kết