我们致力于提供高质量、经过审核的开源动态链接库资源,让开发更加高效。
每一个收录的动态链接库都经过严格的代码审查与安全检测,确保稳定可靠、无恶意代码。
支持 Windows (.dll)、Linux (.so)、macOS (.dylib) 三大主流平台的动态链接库资源。
提供清晰的集成文档与示例代码,支持 CMake / Make / MSBuild 等主流构建系统快速接入。
明确标注每个库的开源许可证类型(MIT / Apache-2.0 / GPL 等),帮助合规使用。
实时追踪库版本更新,提供变更日志与兼容性报告,让你始终使用最新稳定版本。
开放的社区贡献机制,开发者可以提交、评审和讨论,共同维护高质量的资源生态。
精选高质量开源库,涵盖网络、图形、音视频、加密等多个领域。
强大的 URL 传输库,支持 HTTP/HTTPS/FTP 等多种协议,是网络编程的首选基础设施。
跨平台多媒体开发库,提供对音频、键盘、鼠标、操纵杆和图形硬件的底层访问。
健壮的加密与 TLS 工具包,为安全通信提供全面的加密算法和协议实现。
领先的音视频处理框架,包含 libavcodec、libavformat 等全套编解码动态库。
zlib 的现代替代品,针对新一代 CPU 优化的高性能数据压缩动态库。
WebGPU 标准的原生实现,提供高性能 GPU 图形与计算的跨平台动态库接口。
从下载到调用,只需几分钟即可完成集成。
// 1. 引入头文件 #include <stdio.h> #include <dlfcn.h> // Linux/macOS // #include <windows.h> // Windows: LoadLibrary() // 2. 定义函数指针类型 typedef int (*add_func)(int, int); int main() { // 3. 加载动态链接库 void *handle = dlopen("./libmath.so", RTLD_LAZY); if (!handle) { fprintf(stderr, "加载失败: %s\n", dlerror()); return 1; } // 4. 获取函数地址并调用 add_func add = (add_func)dlsym(handle, "add"); printf("3 + 5 = %d\n", add(3, 5)); // 5. 释放动态库 dlclose(handle); return 0; }
import ctypes import platform import os # 1. 根据平台加载对应的动态库 system = platform.system() if system == "Windows": lib = ctypes.CDLL("./libmath.dll") elif system == "Darwin": lib = ctypes.CDLL("./libmath.dylib") else: lib = ctypes.CDLL("./libmath.so") # 2. 设置函数签名 lib.add.argtypes = [ctypes.c_int, ctypes.c_int] lib.add.restype = ctypes.c_int # 3. 调用 result = lib.add(3, 5) print(f"3 + 5 = {result}") # 输出: 3 + 5 = 8
use std::os::raw::c_int; // 声明外部 FFI 函数 extern "C" { fn add(a: c_int, b: c_int) -> c_int; } fn main() { // 使用 libloading 动态加载 use libloading::{Library, Symbol}; unsafe { let lib = Library::new("./libmath.so") .expect("无法加载动态库"); let add: Symbol<unsafe extern "C" fn(c_int, c_int) -> c_int> = lib .get(b"add") .expect("找不到 add 函数"); println!("3 + 5 = {}", add(3, 5)); } }
动态链接库在不同平台上拥有不同的格式与加载机制。
使用 DLL(Dynamic Link Library)格式,通过 LoadLibrary / GetProcAddress 动态加载。
使用 SO(Shared Object)格式,通过 dlopen / dlsym 系列 API 进行动态加载。
使用 Dylib 格式,API 与 Linux 类似,同时支持 Framework 和 Bundle 形式。
关于开源动态链接库,你可能想了解的一些问题。
OpenLib Hub 是我作为一名 C/C++ 开发者,在多年开发过程中积累的开源动态链接库资源整理。 最初只是为了方便自己查找和管理常用的第三方库,后来逐渐发展成一个面向社区的开放资源站。
本站不隶属于任何公司或组织,纯粹是个人兴趣驱动的开源项目。 我坚信好的开源基础设施应该被更多人发现和使用,这也是创建这个网站的初衷。
如果你也有想要分享的优质开源动态库,欢迎通过 GitHub 提交 PR,一起丰富这个资源库。