我用 vcpkg 的清单模式管理项目依赖的三方库(主要是 opencv ),当我配置好后,项目也能编过。但是运行的时候总是报缺 cv 的 dll ,但是之前是没有这个问题的,cmakelist 文件也没有改过,想知道这个坑到底在哪里
1
mrsecond 19 小时 37 分钟前
建议贴出 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 18 小时 35 分钟前
试试 set(X_VCPKG_APPLOCAL_DEPS_INSTALL ON)
|
4
hwdq0012 18 小时 29 分钟前
用什么 ide / 编译器
1. 发布时用 release 2. 看 ide 里的 gdb log 或 msvc log 可以看到所有加载的模块, 复制下来让 llm 帮你处理成脚本,复制所有模块到程序目录,或设置到环境变量,win 上是 PATH, linux 是 LD_LIBRAYR_PATH |
5
mrsecond 18 小时 15 分钟前
试一试这种方式引入 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 8 小时 10 分钟前 via iPhone
主要是生成文件的位置问题
之前行可能是某一次某些文件刚好在一个可及的位置,且没有被清理掉 |