Tại sao lại cần build lại source của OpenCV?

Mình đang tìm hiểu về OpenCV nhưng thấy có đoạn hướng dẫn build lại source OpenCV hoặc dùng bản có sẵn. Vậy tại sao lại chia ra 2 cách install này? Lợi ích của việc build lại là gì?
Cảm ơn mọi người đã đọc bài :smiley:

OpenCV được viết bằng C/C++, ngôn ngữ này không chạy trực tiếp trên máy được nên cần build (compile) để có thể thực thi được trên máy. Cài đặt bằng bản có sẵn thực chất bản đó cũng được build từ source đã được test kỹ và đã ổn định.
Lợi ích của việc build source trực tiếp từ repository là có được những tính năng mới nhất mà bản build stable không có, nhưng vì đó là những tính năng mới, chưa được cộng đồng trải nghiệm nhiều nên khả năng lỗi là có thể xãy ra.

1 Like

Sử dung OpenCV có 2 cách:

  • Sử dụng trực tiếp mã nguồn.
  • Sử dụng các tập tin nhị phân.

Cách thứ nhất thì chỉ sử dụng cho project C/C++ hoặc có thể sử dụng trực tiếp mã nguồn C/C++. Các này không cần compile. Nhược điểm là hạn chế ngôn ngữ vì không phải ngôn ngữ nào cũng kết hợp trực tiếp với mã C/C++. Tập thực thi kích thước lớn.

Cách thứ 2 thì có thể sử dụng cho hầu hết các loại ngôn ngữ, project. Nhưng nó phải build ra các tập nhị phân như dll, lib, so…

Việc build ra nhị phân cũng có nhiều hướng phụ thuộc vào :

  • OS : iOS, Window, Linux, Androi.
  • Cấu trúc CPU : ARM, x86, Apple Ax, 32bit, 64 bit…
  • Trình biên dịch : GCC,G++, MSVC…

Do một tệp nhị phân thì không thể chạy với tất cả các option trên nên cần phải compile lại để lấy được những tệp nhị phân phù hợp.

Ví dụ trên Windows, các dll được compile bang MinGW không sử dụng được với MSVC và ngược lại nên cần phải build cho mỗi thằng 1 bộ riêng. x64 cũng không chạy được trên x86.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?