opencv - 重组代码后链接到OpenCV时出错

标签 opencv cmake

我刚刚重新组织了我的代码(以前曾工作过),现在在运行我的可执行文件时收到一条错误消息:The program can't start because opencv_core230d.dll is missing from your computer.该错误是准确的,我只有适用于OpenCV的.lib库文件,但以前却有效,但我没有认为这应该是一个问题,对吗?

cmake文件的摘录为:

FIND_PACKAGE( OpenCV REQUIRED )

# Define LIBRARY and SRC_FILES to create my library
add_library(${LIBRARY} ${SRC_FILES})
target_link_libraries(${LIBRARY} ${OpenCV_LIBS} )

# Define appName and appFile to create application,
# and link to my library and OpenCV
add_executable(${appName} ${appFile})
target_link_libraries(${appName} ${LIBRARY} ${OpenCV_LIBS})

我是否在做任何明显错误的事情,否则可能导致此错误?

编辑:我现在将此问题简化为一个最小的示例。在一个目录测试中,我有两个文件:testApp.cpp和CMakeLists.txt,如下所示:

testApp.cpp
#include <opencv2/opencv.hpp>

int main(int argc, char* argv[])
{
    cv::namedWindow("Test");
    cv::waitKey(0);
    cv::destroyAllWindows();

    return 0;
}

CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
project(test)

FIND_PACKAGE( OpenCV REQUIRED )

add_executable(appName testApp.cpp)
target_link_libraries(appName ${OpenCV_LIBS})
message(STATUS "Linking testapp to: ${OpenCV_LIBS}")

与以前一样的错误:opencv_highgui230d.dll is missing.

最佳答案

问题在于环境变量 PATH 并不指向OpenCV DLL所在的位置。在OpenCV目录中搜索,如果找不到,则需要重新安装OpenCV。

关于opencv - 重组代码后链接到OpenCV时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9360709/

相关文章:

c++ - Visual Studio 2012 C++ 控制台应用程序立即退出

java - 如何将 ShortBuffer 转换为 Buffer[]?

c++ - 在二维动态数组中填充数据

python - 在Numpy和OpenCV2中替换3D子矩阵

c - 我无法使用 cmake 和 MinGW gcc 编译器构建 gtk gui

c++ - 为什么 C++ 编译器会在 "c:\program files\gnu emacs\include"中查找包含文件?

RotatedRect 顶点的 OpenCV 顺序

c++ - CMake 包配置文件中的通用 "transitive behavior"(find_dependency)

msbuild - 调试 CMake 项目创建

c++ - clang-tidy 报告未知警告