VIP20
本课程属于:010-工程编译 编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

库链接与动态库编译实战

📚 共计 30 章节
第1章
库的概念与分类
静态库与动态库的定义、优缺点对比、应用场景分析。
基础概念
第2章
Linux下静态库的创建与使用
ar工具、静态库命名规范、编译与链接流程。
Linux静态库
第3章
Linux下动态库的创建与使用
gcc -shared、fPIC选项、动态库命名规范。
Linux动态库
第4章
动态库的加载与搜索路径
LD_LIBRARY_PATH、ldconfig、/etc/ld.so.conf配置。
加载路径
第5章
Windows下动态库(DLL)的创建与使用
Visual Studio项目设置、__declspec(dllexport)与__declspec(dllimport)。
WindowsDLL
第6章
动态库的显式加载
dlopen/dlsym/dlclose (Linux) 与 LoadLibrary/GetProcAddress/FreeLibrary (Windows)。
运行时加载
第7章
库的版本控制与兼容性
soname机制、符号版本控制、ABI兼容性。
版本ABI
第8章
链接器与加载器工作原理
链接过程详解、符号解析、重定位。
原理链接
第9章
静态库与动态库混合使用
常见问题与最佳实践。
混合实践
第10章
跨平台库开发
CMake构建系统、条件编译、平台抽象层。
跨平台CMake
第11章
动态库的依赖管理
ldd工具、依赖树分析、缺失依赖处理。
依赖ldd
第12章
库的符号可见性控制
-fvisibility=hidden、导出符号表、减少符号冲突。
符号可见性
第13章
动态库的初始化与清理
__attribute__((constructor))与__attribute__((destructor))、DllMain函数。
初始化清理
第14章
动态库的线程安全
线程局部存储(TLS)、锁机制、无锁编程。
线程安全
第15章
库的性能优化
链接时优化(LTO)、内联、减少符号表大小。
性能LTO
第16章
动态库的调试与诊断
GDB调试动态库、Valgrind检测内存泄漏、strace跟踪系统调用。
调试诊断
第17章
动态库的打包与分发
RPM、Deb包、NuGet包、Conan包管理器。
打包分发
第18章
动态库的逆向工程与保护
反调试技术、代码混淆、加壳。
安全逆向
第19章
动态库的单元测试
Google Test框架、Mock对象、测试覆盖率。
测试GTest
第20章
动态库的文档生成
Doxygen、API文档、使用示例。
文档Doxygen
第21章
动态库的国际化与本地化
gettext、资源文件、Unicode支持。
i18nl10n
第22章
动态库的插件系统设计
插件接口定义、插件加载与卸载、插件管理。
插件架构
第23章
动态库的日志系统
spdlog、log4cpp、日志级别、异步日志。
日志spdlog
第24章
动态库的配置管理
JSON/XML解析、配置文件热加载。
配置热加载
第25章
动态库的网络通信
libcurl、Boost.Asio、HTTP客户端/服务器。
网络libcurl
第26章
动态库的数据库访问
SQLite、MySQL Connector/C++、ORM框架。
数据库SQLite
第27章
动态库的加密与安全
OpenSSL、加密算法、数字签名。
加密OpenSSL
第28章
动态库的图形界面
Qt插件、GTK模块、跨平台GUI。
GUIQt
第29章
动态库的脚本绑定
Python C扩展、Lua绑定、SWIG工具。
脚本SWIG
第30章
综合实战:完整动态库项目
从设计到发布的全流程,构建一个完整的动态库项目。
实战全流程