Trang tài liệu
Khóa học C++ nền tảng
Chương 19. Làm việc với thư viện
Giấy phép trong C++

Giấy phép trong C++

Giấy phép là một khía cạnh quan trọng khi làm việc với các thư viện trong C++ vì nó xác định các quyền và hạn chế về cách bạn có thể sử dụng, sửa đổi và phân phối một thư viện nhất định. Có nhiều loại cấp phép khác nhau được áp dụng cho các thư viện mã nguồn mở. Dưới đây là tổng quan ngắn gọn về ba giấy phép phổ biến:

Giấy phép MIT

Giấy phép MIT là giấy phép đơn giản cho phép người dùng làm bất cứ điều gì họ muốn với mã code phần mềm. Họ chỉ cần thêm bản quyền gốc, thông báo giấy phép và một từ chối bảo hành trong các bản sao của họ.

Ví dụ: Việc đưa Giấy phép MIT vào dự án của bạn có thể được thực hiện bằng cách chỉ cần thêm tệp giấy phép và thông báo ở đầu tệp mã nguồn của bạn như sau:

/* Copyright (C) [year] [author]
 * SPDX-License-Identifier:    MIT
 */

Giấy phép phần mềm GNU (GPL)

GPL là giấy phép copyleft cấp cho người dùng quyền sử dụng, nghiên cứu, chia sẻ và sửa đổi mã code phần mềm. Tuy nhiên, bất kỳ thay đổi nào được thực hiện đối với mã hoặc bất kỳ phần mềm nào sử dụng mã được cấp phép GPL cũng phải được phân phối theo giấy phép GPL.

Ví dụ: Để bao gồm giấy phép GPL trong dự án của bạn, hãy bao hàm tệp COPYING với toàn bộ văn bản giấy phép và đặt thông báo trong tệp mã nguồn của bạn như sau:

/* Copyright (C) [year] [author]
 * SPDX-License-Identifier:    GPL-3.0-or-later
 */

Giấy phép Apache 2.0

Giấy phép Apache là giấy phép tương tự như MIT và cho phép người dùng thực hiện hầu như mọi thứ với mã code phần mềm. Sự khác biệt chính là nó yêu cầu mọi thay đổi đối với mã phải được ghi lại và nó cung cấp các điều khoản cụ thể để bảo vệ bằng sáng chế.

Ví dụ: Để bao hàm Giấy phép Apache trong dự án của bạn, hãy thêm tệp LICENSE với bộ văn bản giấy phép. Thêm thông báo vào tệp mã nguồn của bạn như sau:

/* Copyright (C) [year] [author]
 * SPDX-License-Identifier:    Apache-2.0
 */

Xin lưu ý rằng đây là những bản tóm tắt ngắn gọn về các giấy phép và có nhiều giấy phép khác có sẵn để sử dụng trong các dự án phần mềm. Khi sử dụng các thư viện của bên thứ ba, điều quan trọng là phải hiểu và tuân thủ các điều khoản trong giấy phép tương ứng của họ để tránh các rắc rối pháp lý.