You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Qt5.7.1中部署OpenVINO-OpenCV411后程序无法正常运行求助

解决Qt5.7.1中OpenVINO-OpenCV4.1.1无法正常运行的问题

我来帮你排查这个程序直接退出的问题,这种情况大多是动态库依赖缺失、配置不匹配或者初始化错误导致的,咱们一步步来解决:

1. 优先检查动态库路径配置

Windows下Qt运行时需要找到OpenCV的动态库(.dll文件),OpenVINO自带的OpenCV dll存放在C:/openvino-411/openvino_2019.2.275/opencv/bin目录下:

  • 你可以把这个路径添加到系统的PATH环境变量里,然后重启Qt Creator生效;
  • 或者在Qt Creator的项目设置中,切换到「Run」选项卡,在「Environment」区域添加:
    PATH=C:/openvino-411/openvino_2019.2.275/opencv/bin;%PATH%
    
    注意Debug模式下,要确保该目录下存在带d后缀的dll文件(比如opencv_core411d.dll)。

2. 验证.pri文件的配置准确性

先确认路径没有拼写错误,比如C:/openvino-411/openvino_2019.2.275是否和实际安装路径一致。另外可以给pri文件加个调试输出,确认构建模式是否匹配:

message("Current build mode: " $$CONFIG)

INCLUDEPATH += C:/openvino-411/openvino_2019.2.275/opencv/include
CONFIG(release, debug|release):{
LIBS += -LC:/openvino-411/openvino_2019.2.275/opencv/lib \
-lopencv_core411 -lopencv_highgui411 -lopencv_imgproc411 -lopencv_imgcodecs411 -lopencv_features2d411 -lopencv_ml411 -lopencv_objdetect411 -lopencv_dnn411
message("Loading Release OpenCV libraries")
}
CONFIG(debug, debug|release):{
LIBS += -LC:/openvino-411/openvino_2019.2.275/opencv/lib \
-lopencv_core411d -lopencv_highgui411d -lopencv_imgproc411d -lopencv_imgcodecs411d -lopencv_features2d411d -lopencv_ml411d -lopencv_objdetect411d -lopencv_dnn411d
message("Loading Debug OpenCV libraries")
}

构建项目时,查看Qt Creator的「Compile Output」窗口,确认加载的库和当前构建模式一致。

3. 用极简代码测试OpenCV是否正常工作

写一个最基础的测试程序,排除业务代码的干扰:

#include <opencv2/opencv.hpp>
#include <iostream>

int main(int argc, char *argv[]) {
    std::cout << "OpenCV Version: " << CV_VERSION << std::endl;
    // 创建一个绿色的测试窗口
    cv::Mat testImg = cv::Mat(300, 300, CV_8UC3, cv::Scalar(0, 255, 0));
    cv::imshow("OpenCV Test", testImg);
    
    std::cout << "Press any key to exit..." << std::endl;
    cv::waitKey(0);
    cv::destroyAllWindows();
    return 0;
}

如果这个程序能正常显示绿色窗口,说明OpenCV配置没问题,问题出在你原来的业务代码里;如果还是直接退出,那继续排查环境和配置问题。

4. 确认Qt工具链与OpenVINO兼容

OpenVINO 2019.2的OpenCV是用MSVC编译器编译的,如果你用的是MinGW版本的Qt,会因为C++ ABI不兼容导致运行失败。请确认你的Qt是MSVC版本(比如适配VS2015/2017),和OpenVINO的编译环境匹配。

5. 查看程序的错误日志

在Qt Creator的「Application Output」窗口查看是否有加载dll失败的提示;也可以打开Windows的「事件查看器」→「Windows日志」→「应用程序」,查找程序退出时的错误记录,比如“找不到xxx.dll”或者“无效的Win32应用程序”,这些信息能精准定位问题。

内容的提问来源于stack exchange,提问作者jwm

火山引擎 最新活动