Hướng dẫn tạo và sử dụng thư viện tĩnh (static library) trong c++

Ngày nay, việc sử dụng thư viện ngoài để phát triển ứng dụng là vô cùng phổ biến. Có rất nhiều thư viện mã nguồn mở mà lập trình viên có thể sử dụng để xây dựng ứng dụng nhanh hơn, ổn định hơn. Tuy nhiên, trước khi sử dụng chúng, ta nên tìm hiểu cơ bản về cách để tạo ra và sử dụng thư viện. Do đó, hôm nay tôi sẽ hướng dẫn tạo và sử dụng thư viện tĩnh (static library) trong c++.

1. Khái niệm thư viện và phân loại

★ Thư viện: theo tôi hiểu, đó là một tập hợp các hàm, lớp được đóng gói lại. Qua đó, lập trình viên có thể sử dụng thư viện để thực hiện các mục tiêu nhất định.

★ Có thể chia thành 2 loại thư viện là: thư viện liên kết tĩnh (static library) và thư viện liên kết động (dynamic link library).

➤ Thư viện liên kết tĩnh (static library): Trong windows thì chúng có đuôi .lib, còn trong linux thì chúng có đuôi là .a. Thư viện liên kết tĩnh sẽ được gọi đến trong quá trình biên dịch.

➤ Thư viện liên kết tĩnh (dynamic link library): Trong windows thì chúng có đuôi .dll, còn trong linux thì chúng có đuôi .so. Thư viện liên kết động sẽ được gọi đến trong quá trình chạy.

Trên đây là những khái niệm cơ bản về thư viện, cũng như sự khác nhau giữa thư viện liên kết tĩnh và thư viện liên kết động. Trong bài viết này, tôi sẽ chia sẻ với các bạn cách tạo ra và sử dụng thư viện liên kết tĩnh (static library) trong C++. Đối với thư viện liên kết động (dynamic link library), hẹn gặp bạn ở bài viết sau.

2. Cách tạo ra thư viện tĩnh (static library) trong c++

★ Công cụ: Tôi sử dụng Visual Studio Express for Desktop 2012.

★ Các bước thực hiện:

➤ Bước 1:

Tạo project: các bạn chạy VS lên, tạo mới một project và chọn Empty project

huong-dan-tao-va-su-dung-thu-vien-tinh-static-library-cpp-1-phamvanlam-com

 

➤ Bước 2:

Cấu hình để build ra static library: Các bạn nhấn chuột phải vào project, chọn Properties. Cửa sổ hiện ra, bạn chọn Static library (.lib).

huong-dan-tao-va-su-dung-thu-vien-tinh-static-library-cpp-2-phamvanlam-com

 

Chú ý: ở đây tôi chọn build lib ở Win32. Khi đó, lúc sử dụng tôi sẽ phải chọn tương ứng là Win32. Ngược lại, nếu tôi chọn là x64, thì tương ứng khi sử dụng tôi cũng phải chọn chế độ x64. Tóm lại là, thư viện cài đặt như nào thì project sử dụng phải được cài đặt tương ứng.

➤ Bước 3:

Viết code: Cái này thì tùy bạn thôi, tôi sẽ bỏ qua bước này.

➤ Bước 4:

Build thư viện: bạn chọn Build => Build Solution trên thanh công cụ. Sau bước này, các bạn sẽ thu được một tệp tin .lib trong thư mục Debug/Release

huong-dan-tao-va-su-dung-thu-vien-tinh-static-library-cpp-3-phamvanlam-com

 

Như vậy là bạn đã tạo thành công thư viện tĩnh (static library). Tiếp theo, tôi sẽ hướng dẫn bạn cách sử dụng thư viện tĩnh này.

3. Cách sử dụng thư viện tĩnh (static library) trong c++

➤ Bước 1:

Tạo project : các bạn làm giống như bước 1 ở phần 2 (chú ý là mặc định sẽ build ra tệp tin .exe nên ta không cần làm bước 2 của phần trên).

➤ Bước 2:

Sau khi có project, bây giờ ta sẽ import thư viện đã được build ra ở bên trên. Đầu tiên, copy thư viện vào một thư mục, ví dụ là dependencies trong project, như vậy sẽ tiện về sau.

huong-dan-tao-va-su-dung-thu-vien-tinh-static-library-cpp-4-phamvanlam-com

 

Tiếp theo, cấu hình đường dẫn thư viện. Các bạn nhấn chuột phải vào project, chọn Properties. Cửa sổ hiện lên, bạn chọn trong Configuration Properties => C/C++ => General, trong Additional Include Directories, bạn chọn đường đẫn đến tệp tin header .h. Trong ví dụ của tôi, tôi cài đặt là $(SolutionDir)\dependencies\lamp\include; 

huong-dan-tao-va-su-dung-thu-vien-tinh-static-library-cpp-5-phamvanlam-com

 

Tiếp theo là cài đặt đường dẫn đến thư mục chứa tệp tin .lib. Cũng trong cửa sổ này, bạn chọn trong Configuration Properties => Linker => General, trong Additional Library Directories, bạn chọn đường dẫn đến thư viện liên kết tĩnh. Trong ví dụ của tôi, tôi cài đặt là $(SolutionDir)\dependencies\lamp\bin; 

Nhấn OK. Lúc này, bạn đã cấu hình đường dẫn thư viện xong. Tiếp theo là xử lý trong code.

➤ Bước 3:

Viết code: bạn chỉ cần làm như sau là hoàn toàn có thể sử dụng được thư viện

#include “Stack.h”
#include “Queue.h”
#include “PriorityQueue.h”
#pragma comment(lib, “lamp.lib”)

Trong đó, phần đầu là include đến các tệp tin header .h và tiếp theo là cú pháp để nạp thư viện tĩnh (static library) – với tên thư viện tĩnh của tôi là “lamp.lib”.

Trên đây là cách để tạo ra và sử dụng thư viện tĩnh (static library) trong cpp (c++). Để hiểu rõ hơn, các bạn có thể tham khảo project mà tôi đã làm thử để kiểm tra việc sử dụng thư viện tĩnh, tại đây.

Ngoài ra, đây là thư viện mà tôi viết ra, chứa 3 lớp cơ bản đó là: ngăn xếp (Stack), hàng đợi (Queue) và hàng đợi ưu tiên (PriorityQueue).

Rất mong nhận được phản hồi từ các bạn và trân thành cám ơn.
Phạm Văn Lâm.

1 bình luận

  1. LP Devs Post authorReply

    Đây là bài hướng dẫn tạo và sử dụng thư viện tĩnh static library trong cpp trên Windows. Đối với việc tạo thư viện tĩnh trong cpp trên Linux thì sẽ hơi khác. Dù sao thì cũng mong nhận được phản hồi từ các bạn.

    Trân trọng,
    Phạm Văn Lâm

Leave a Reply

Your email address will not be published. Required fields are marked *