最终王冠手游
1.2GB · 2025-12-07
由于工作需要,要运行并基于某个开源的c库做demo。最头疼的是依赖库,代码里依赖了哪些库,而本机环境缺少哪些库。整理了以下方法备忘
CMake 自带的依赖检测如果用 CMake 管理项目:
find_package() 会显式要求某个库。cmake --graphviz=deps.dot .
可以生成 依赖关系图(包括库依赖)。Could NOT find XXX,等于帮你检测缺失。
优点:自动、跨平台。pkg-configLinux/WSL 环境下,很多库都提供 .pc 文件:
pkg-config --libs --cflags opencv4
会列出依赖的头文件和库路径。
如果缺少 .pc 文件,pkg-config 会直接报错,提示库没装。
安装 ms-vscode.cpptools 后:
C/C++: Edit Configurations (UI) 可以看到 includePath、defines 等配置。ldd在 Linux 下编译出可执行文件后:
ldd ./myprogram
会列出所有动态库依赖,以及是否存在 “not found” 。
例子:
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f...)
libopencv_core.so.4.5 => not found
not found 就是缺失库。
otool -L和 ldd 类似:
otool -L ./myprogram
dumpbin / Dependenciesdumpbin /DEPENDENTS myprogram.exe(VS 开发者命令行里)conan / vcpkg(包管理器)
conan install 或 vcpkg install,它会解析项目依赖并自动安装缺失的库。CMake + Conan/Vcpkg 集成
cmake .. -DCMAKE_TOOLCHAIN_FILE=...CMake --graphviz、pkg-config、VS Code C++ 插件提示。ldd,macOS 用 otool -L,Windows 用 dumpbin 或 Dependencies。