我刚刚重新组织了我的代码(以前曾工作过),现在在运行我的可执行文件时收到一条错误消息: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/