Level 612 bài
Static Library / Dynamic Library
Đóng gói mã thành thư viện dùng lại được, hiểu liên kết và ABI.
Chương 39. Library
Thư viện tĩnh, thư viện động, ký hiệu, ABI và hệ thống plugin.
- 39.1Thư viện tĩnh chỉ là một kho lưu trữar, nm, và bên trong một tệp .a thật sự có gì.26 phút
- 39.2Thứ tự -l và cách trình liên kết duyệtVì sao gcc -lm main.c thất bại mà gcc main.c -lm thành công.24 phút
- 39.3Thư viện động và vì sao cần -fPICTạo .so trên Linux và .dll trên Windows, và mã độc lập vị trí là gì.30 phút
- 39.4Tĩnh hay động: sáu tiêu chíKích thước, bộ nhớ, tốc độ khởi động, vá lỗi, triển khai và rủi ro.26 phút
- 39.5Đọc bảng ký hiệunm, objdump, readelf và bảy chữ cái phải thuộc.28 phút
- 39.6Điều khiển ký hiệu xuất raMặc định thư viện xuất ra mọi thứ, và đó là vấn đề.26 phút
- 39.7ABI và những thứ phá vỡ nóAPI là mã nguồn, ABI là nhị phân, và nhầm hai thứ đó rất tốn kém.30 phút
- 39.8Kiểu mờ và cách giữ ABI ổn địnhNgười dùng không biết kích thước struct thì bạn đổi nó thoải mái.28 phút
- 39.9Đánh số phiên bản và SONAMElibmy.so.1.2.3, SONAME và semantic versioning cho thư viện.24 phút
- 39.10Nạp thư viện lúc chạydlopen trên POSIX, LoadLibrary trên Windows, và cách ép kiểu con trỏ hàm cho đúng.28 phút
- 39.11Hệ thống pluginMột chương trình chính nạp mọi thư viện trong một thư mục, mỗi cái đăng ký một lệnh.30 phút
- 39.12Project: đóng gói mathlibCùng một mã nguồn, xuất ra cả .a lẫn .so, kèm Makefile và pkg-config.30 phút