Tôi có một dự án liên kết đến nửa tá thư viện, trong đó có OpenCV.
Vì Biến thể phát hành bị lỗi, trong khi Debug hoạt động tốt (chậm hơn rất nhiều), tôi muốn biên dịch dự án của mình ở cấu hình RelWithDebInfo
.
Tuy nhiên, phiên bản Debug
của thư viện OpenCV được bao gồm thay vì Release
(OpenCV không có biến thể RelWithDebInfo
). Điều này làm cho liên kết các lỗi như:CMake RelWithDebInfo liên kết tới các thư viện gỡ lỗi
opencv_core249d.lib (alloc.obj): lỗi LNK2038: không phù hợp được phát hiện cho 'RuntimeLibrary': giá trị 'MDd_DynamicDebug' không phù hợp với giá trị 'MD_DynamicRelease' trong MyProject.obj
Làm thế nào để giải quyết vấn đề này?
Tôi giải quyết vấn đề này bằng cách không bao giờ sử dụng mục tiêu CÀI ĐẶT trong cửa sổ. Thay vào đó, hãy trỏ các biến PROJECTNAME_DIR vào thư mục gốc nơi bạn đã xây dựng thư viện. Tôi cũng xây dựng tất cả các phụ thuộc với trình biên dịch tôi đang sử dụng và không bao giờ sử dụng các gói nhị phân. Nếu bạn xây dựng opencv từ nguồn thì nó vẫn loại bỏ cấu hình RelWithDebInfo? – drescherjm
Tôi đã xây dựng OpenCV từ nguồn. Tôi không có vấn đề này với OpenCV được biên dịch trước. –