Là một phần trong nghiên cứu của tôi, tôi viết rất nhiều mã Python và MATLAB không bao giờ cần phải phân phối cho bất kỳ ai khác. Ngay cả khi tôi cần phân phối phần mềm của mình, Python và MATLAB, cả hai đều được diễn giải, làm cho việc chia sẻ nó tương đối đơn giản.
Bây giờ tôi đang viết một số phần mềm bằng C ++ mà tôi muốn phân phối. Tôi có cách xử lý cách biên dịch phần mềm trên máy của mình, nhưng điều tôi không hiểu là cần phải làm gì để cung cấp cho người khác phần mềm.
Đầu tiên, thêm về dự án của tôi: Tôi đang viết một số mã để tính toán và hiển thị trực quan hóa. Dự án dựa trên biểu đồ và vì vậy tôi đang sử dụng thư viện đồ thị LEMON. Tôi đang khám phá các triển khai VTK và OpenGL với mục đích hiển thị trực quan hóa. Tôi muốn viết các ràng buộc Python và MATLAB cho người dùng của các môi trường đó để có thể sử dụng phần mềm của tôi và tôi muốn sản xuất các phiên bản Windows và Linux (tôi chưa nghĩ về OS X ...).
Vì vậy, hãy lấy thư viện đồ thị LEMON làm ví dụ. Đó là một loạt các tiêu đề cùng với một đối tượng chia sẻ nhỏ. Trên hệ thống phát triển của mình, tôi biên dịch thư viện với CMake và liên kết nó với dự án của tôi.
Bây giờ nói rằng tôi muốn đưa phần mềm của mình cho ai đó đang chạy trên Windows. Tôi muốn họ có thể tải xuống trình cài đặt, nhấp vào một hoặc hai nút và có mọi thứ được chăm sóc. Tôi không muốn họ lo lắng về việc cài đặt thư viện LEMON hoặc OpenGL. Họ không nên cố tình biên dịch bất cứ điều gì. Điều này có thể không?
Tôi có một cảm giác như vậy, nhưng tôi đến ngắn khi tìm kiếm tài liệu tham khảo. Tôi có một ý tưởng mơ hồ rằng nếu tôi biên dịch nhị phân trên Windows thì tôi có thể phân phối nhị phân đó cho bất kỳ ai chạy HĐH Windows. Nhưng những gì về các thư viện tôi sử dụng? Tôi đoán tôi cần phải liên kết tĩnh chúng trên Windows và điều đó sẽ giải quyết vấn đề phụ thuộc ở đó. Nhưng trong tâm trí tôi đã đọc được rằng liên kết tĩnh không phải là thông lệ tốt (hay đây chỉ là trên Linux?)
Như bạn có thể nói, tôi có phần lạc lõng. Tôi đánh giá cao một người thích đi đúng hướng và một số tài liệu tham khảo để đọc nếu bạn tình cờ biết về bất kỳ!