Giả sử tôi có hàm này được gọi là DoThis (const char * abc) trong một tệp có tên là one.cpp. Vì vậy, khi tôi cố gắng gọi hàm này từ một hàm khác trong một tệp nguồn khác (hai.cpp), tôi nhận được lỗi: lỗi LNK2001: biểu tượng bên ngoài chưa được giải quyết (C++), mặc dù tôi đã sử dụng #include "one.h" Tôi làm gì để sửa lỗi này?lỗi LNK2001: biểu tượng bên ngoài chưa được giải quyết (C++)
Trả lời
Điều đó có nghĩa là định nghĩa chức năng của bạn không có trong chương trình của bạn. Bạn đã quên thêm one.cpp
vào chương trình của mình.
Điều "thêm" có nghĩa là trong trường hợp này phụ thuộc vào môi trường xây dựng và thuật ngữ của nó. Trong MSVC (vì bạn đang sử dụng MSVC), bạn phải thêm one.cpp
vào dự án.
Trong điều kiện thực tế hơn, áp dụng cho tất cả các phương pháp xây dựng điển hình, khi bạn liên kết chương trình của bạn, tệp đối tượng đã tạo biểu mẫu one.cpp
bị thiếu.
Nhưng điều gì sẽ xảy ra nếu tệp của tôi là tệp chỉ tiêu đề gây ra một lớp trừu tượng? Xin lỗi để đào lên bài cũ :) –
@Niklas Vest: Nếu mọi thứ đều có, trong tiêu đề, sau đó trình biên dịch/linker sẽ có thể tìm thấy mọi thứ mà không có bất kỳ vấn đề. I E. LNK2001 đơn giản sẽ không xảy ra. Đặt những thứ không phù hợp vào các tập tin tiêu đề thường làm tăng nguy cơ LNK2005, mà là ở đầu kia của quang phổ: quá nhiều định nghĩa. – AnT
Có vẻ như bạn đang sử dụng Microsoft Visual C++. Nếu đó là trường hợp, thì khả năng nhất là bạn không biên dịch hai.cpp của bạn với one.cpp (one.cpp là việc thực hiện một .h).
Nếu bạn đến từ dòng lệnh (cmd.exe), sau đó thử này đầu tiên: cl -o two.exe one.cpp two.cpp
Nếu bạn đến từ IDE, nhấp chuột phải vào tên dự án từ Solution Explore. Sau đó, chọn Thêm, Mục Hiện tại .... Thêm một .pp vào dự án của bạn.
- 1. C++ LNK2001 lỗi: chưa được giải quyết bên ngoài chức năng biểu tượng _main
- 2. C++ biểu tượng bên ngoài chưa được giải quyết
- 3. Biểu tượng bên ngoài chưa được giải quyết LNK2019
- 4. C++ tiếp tục gặp lỗi LNK2019: biểu tượng bên ngoài chưa được giải quyết
- 5. Lỗi C++ LNK1120 và LNK2019: "biểu tượng bên ngoài chưa được giải quyết WinMain @ 16"
- 6. lỗi LNK2019: biểu tượng bên ngoài chưa được giải quyết opencv
- 7. Lỗi biểu tượng chưa được giải quyết trong DLL
- 8. chưa được giải quyết biểu tượng bên ngoài "_hypot" khi sử dụng thư viện tĩnh
- 9. Linker lỗi 'biểu tượng bên ngoài chưa được giải quyết': làm việc với các mẫu
- 10. Làm cách nào tôi có thể giải quyết "lỗi LNK2019: biểu tượng bên ngoài chưa được giải quyết"?
- 11. Lỗi Clrdump (C++) LNK2019: biểu tượng bên ngoài chưa được giải quyết __imp__RegisterFilter @ 8 được tham chiếu trong hàm _main
- 12. lỗi LNK2001: biểu tượng bên ngoài chưa được giải quyết "__declspec (dllimport) công khai: lớp QString & __thiscall QString :: operator = (lớp QString &&)"
- 13. lỗi xây dựng studio trực quan: biểu tượng bên ngoài chưa được giải quyết _IID_IWICImagingFactory (MFC static lib)
- 14. biểu tượng bên ngoài không được giải quyết - Qt tạo
- 15. Flann chức năng bên ngoài chưa được giải quyết
- 16. Lỗi LNK2019: Biểu tượng ngoài chưa được giải quyết trong Visual Studio
- 17. Liên kết rất nhiều .libs để tạo DLL: biểu tượng bên ngoài chưa được giải quyết _DllMainCRTStartup
- 18. C++ Lỗi LNK1120 Fatal: 1 externals chưa được giải quyết
- 19. Chưa được giải quyết bên ngoài (bộ tạo lớp/trình phá hủy lớp trừu tượng)
- 20. Các biểu tượng bên ngoài chưa được giải quyết trong việc biên dịch ứng dụng 32 bit trong Windows 64
- 21. biểu tượng bên ngoài chưa được giải quyết cho __declspec (dllimport) khi sử dụng dll để xuất lớp
- 22. boost :: chủ đề build lỗi (không thể liên kết lib && chưa được giải quyết bên ngoài)
- 23. Các bên ngoài chưa được giải quyết đang cố gắng sử dụng ffmpeg
- 24. Cách loại bỏ lỗi này: "MSVCRTD.lib (crtexe.obj): lỗi LNK2019: biểu tượng bên ngoài chưa được giải quyết _main được tham chiếu trong hàm ___tmainCRTStartup"
- 25. lỗi biểu tượng bên ngoài chưa được giải quyết khi nhập thư viện cho OpenCV2.3 trong Visual Studio 2010 Express C++
- 26. Cách sửa lỗi Visual Studio 2012 LNK2019: biểu tượng bên ngoài chưa được giải quyết "__declspec (dllimport) công khai: class std :: basic_string?
- 27. Các ký hiệu ngoài chưa được giải quyết __RTC_ * trong hướng dẫn lập trình Windows
- 28. OpenCV sẽ không biên dịch do bên ngoài chưa được giải quyết - LNK2019
- 29. Làm cách nào để liên kết một DLL với dự án của tôi? lỗi LNK2019: biểu tượng bên ngoài chưa được giải quyết
- 30. Giải quyết lỗi "Thuộc tính ConnectionString chưa được khởi tạo."?
Nó cũng được xác định trong một.h – Enigma
Hàm DoThis được xác định trong tiêu đề. – user2549990
là cả hai tệp được liên kết với dự án? – Enigma