我用 vcpkg 的清单模式管理项目依赖的三方库(主要是 opencv ),当我配置好后,项目也能编过。但是运行的时候总是报缺 cv 的 dll ,但是之前是没有这个问题的,cmakelist 文件也没有改过,想知道这个坑到底在哪里
1 mrsecond 38 天前 建议贴出 cmakelist 和报错信息 |
2 xlpxx OP @mrsecond 报错主要是缺少 cv 的 dll ,比如这个”由于找不到 opencv_dnn4d.dll ,无法继续执行代码。重新安装程序可能会解决此问题“ cmakelist 很简单,set(CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/vcpkg_installed/x64-windows") 只是指定了 vcpkginstall 目录,后面就是 find_package(OpenCV CONFIG REQUIRED) target_link_libraries(${TARGET_NAME} PRIVATE ${OpenCV_LIBS}) |
![]() | 3 Shatyuka 38 天前 试试 set(X_VCPKG_APPLOCAL_DEPS_INSTALL ON) |
4 hwdq0012 38 天前 用什么 ide / 编译器 1. 发布时用 release 2. 看 ide 里的 gdb log 或 msvc log 可以看到所有加载的模块, 复制下来让 llm 帮你处理成脚本,复制所有模块到程序目录,或设置到环境变量,win 上是 PATH, linux 是 LD_LIBRAYR_PATH |
5 mrsecond 38 天前 试一试这种方式引入 vcpkg: if(DEFINED ENV{VCPKG_ROOT}) message("VCPKG_ROOT: $ENV{VCPKG_ROOT}") else() message("NOT DEFINED VCPKG_ROOT VARIABLES") endif() set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") |
![]() | 7 funcman 38 天前 via iPhone 主要是生成文件的位置问题 之前行可能是某一次某些文件刚好在一个可及的位置,且没有被清理掉 |