Tôi đang sử dụng hệ thống makefile với trình biên dịch pvcs (sử dụng trình biên dịch Microsoft Visual C++, 2008) và tôi nhận được một số lỗi liên kết của biểu mẫu: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
error LNK2019: unresolved external symbol [email protected] referenced in function _main
này đang xảy ra mặc dù sử dụng các extern "C"
khai, tức là .:
extern "C" int CLRDUMP_API RegisterFilter(LPCWSTR pDumpFileName, unsigned long DumpType);
Ngoài ra, trong makeexe.mak, thư viện đã được liên kết trong như:
$ (COMPILEBASE) \ lib \ clrdump.lib \
Thành thật mà nói, tôi không phải là chuyên gia tại makefiles, và tôi đang thay đổi trên một hệ thống từ Microsoft Visual C++ 6.0 đến 2008. Sự thay đổi này có thể có một cái gì đó để làm với các lỗi liên kết, như hệ thống được sử dụng để làm việc trước đây.
Bất kỳ trợ giúp nào thực sự sẽ được đánh giá cao.
Cảm ơn trước,
Trân trọng, Joseph
- Chỉnh sửa 1-
Có ai biết làm thế nào để biến tiết trên trong hệ thống makefile của PVC?
Lưu ý rằng các chức năng trên đã là một phiên bản trình biên dịch trang trí, có
[email protected]
trong khi hàm C++ chỉ là
RegisterFilter
Thanks for the help, nhưng nếu ai cũng có thể viết nhiều hơn giải pháp hoàn chỉnh, điều đó cũng sẽ rất được đánh giá cao.
Trân trọng, Joseph
- Sửa 2-
Một số người tốt bụng gửi này, nhưng khi tôi đăng nhập nó biến mất:
Các imp tiền tố chỉ ra rằng chức năng này được nhập khẩu từ một DLL. Kiểm tra định nghĩa của CLRDUMP_API
- là nó __declspec(dllimport)
? Tìm hiểu thêm thông tin qua bài báo này.
Đã có liên kết hoạt động nhưng tôi đã mất liên kết đó, tuy nhiên tôi cho rằng người ta luôn có thể tìm kiếm chủ đề.
Cảm ơn, cho dù bạn là ai!
- Sửa 3-
Cảm ơn ChrisN (tôi chưa được phép bỏ phiếu). Mặc dù sử dụng nút làm mới, câu trả lời của bạn biến mất, nhưng sau đó lại xuất hiện sau khi tôi đăng một bản cắt-n-dán.
Đây là định nghĩa của tôi về điều đó:
define CLRDUMP_API __declspec(dllimport) __stdcall
Tôi giả định rằng __stdcall là OK?
- Sửa 4-
Trong khi tôi đánh giá cao những nỗ lực của những người trả lời, đặc biệt là ChrisN, ít nhất là trên hệ thống đặc biệt của tôi, các lỗi liên kết vẫn còn. Vì vậy, nếu bất cứ ai có bất kỳ cái nhìn sâu sắc hơn nữa, tôi sẽ đánh giá cao nó. Cảm ơn một lần nữa.
Tôi đã phát triển một ứng dụng ATL/COM rất đơn giản và đã cố gắng gọi phương thức CreateMappedBitmap (...).Tôi đã nhận được lỗi LNK2019 cho phương thức này gọi bằng cách sử dụng VS 2012. Đề xuất ở trên về việc thêm công việc comctl32.lib cho tôi. không thực hiện bất kỳ thay đổi nào khác. –