1 背景
2、常见系统依赖组件
系统_架构 | 动态依赖库 | 说明 |
linux_amd64 | libdl.so.2 | 动态链接库 |
libstdc++.so.6 | C++ 标准库,最低 libstdc++.so.6.0.19 | |
libm.so.6 | 数学库,最低 libm-2.17.so | |
GCC 支持库,最低 gcc (GCC) 4.8.5 | ||
libc.so.6 | C 标准库,最低 GLIBC_2.17 | |
动态链接器 | ||
linux_arm64 | libdl.so.2 | 动态链接库 |
libstdc++.so.6 | C++ 标准库,最低 libstdc++.so.6.0.19 | |
libm.so.6 | 数学库,最低 libm-2.17.so | |
GCC 支持库,最低 gcc (GCC) 4.8.5 | ||
libc.so.6 | C 标准库,最低 GLIBC_2.17 | |
动态链接器 | ||
windows_amd64 | ucrtbase.dll | Universal C Runtime |
msvcp140.dll | Microsoft Visual C++ Runtime | |
msvcrt.dll | Microsoft Visual C Runtime | |
vcruntime140.dll | Visual C++ Runtime | |
windows32不支持 |
如果操作系统缺失此类依赖,需要自行安装解决, 更多平台支持:https://duckdb.org/docs/1.2/dev/building/overview
3 安装方式
- 对于Ubuntu/Debian:
代码块 |
---|
sudo apt-get update sudo apt-get install libc6 libstdc++6 libgcc1 libm6 |
...
找到缺失的DLL文件
复制到应用程序目录或系统目录(通常在 C:\Windows\System32\ 目录下)
注册DLL文件(如果需要)
4 动态依赖库依赖查找机制
1、加载主库时的依赖查找流程
Java 层做了什么?
...
递归加载:LoadLibrary 会自动递归加载所有依赖 DLL。
3)macOS (dyld)
依赖声明:Mach-O 文件的 LC_LOAD_DYLIB。
...