• Win10下Qt配置opencv/libtorch闭坑总结


    Win10下Qt配置opencv/libtorch闭坑总结

    坑1:Libtorch只能用MSVC编译器直接调用(错误:assert_fail’ was not declared in this scope)

    安装Qt时,勾选MSVC部分,同时需要cdb.exe来进行配置。
    下载链接
    安装时只安装Debugging Tools即可
    在这里插入图片描述

    在Qt菜单栏工具->选项->构建套件(Kits)->MSVC 2017 x64->调式器,添加cdb.exe。如下所示
    在这里插入图片描述

    坑2:不能把QCoreApplication头文件放在最前面不然会出错

    C2143:语法错误:缺少“;”(在“*”的前面)
    C4430:缺少类型说明符 - 假定为int。注意:C++不支持默认int
    C2334:“{”的前面有意外标记;跳过明显的函数体

    测试代码

    #include 
    #include 
    
    #include 
    #include 
    
    
    //不能把它放在前面 不然会出错
    #include 
    
    using namespace cv;
    using namespace std;
    
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        // 打印libtorch版本
    
        cout << "LibTorch version : "
               << TORCH_VERSION_MAJOR << "."
               << TORCH_VERSION_MINOR << "."
               << TORCH_VERSION_PATCH << endl;
        cout << "PyTorch version: " << TORCH_VERSION <<endl;
    
    
        torch::Tensor tensor = torch::rand({2, 3});
        std::cout << tensor << std::endl;
    
    
        //测试是否能使用GPU
        if(torch::cuda::is_available()){
            cout << "can use GPU" << endl;
        }
        else{
            cout << "can not use GPU" << endl;
        }
    
    
    
    
        //测试opencv
        cv::Mat src = cv::imread("E:\\QT\\img\\noobcv.jpg");
        if(src.empty()){
            cout << "open image faileed " << endl;
            return -1;
        }
    
    
        cv::imshow("src", src);
        cv::waitKey(0);
    
    
    
        return a.exec();
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    测试结果
    在这里插入图片描述

    坑3:libtorch需要C++14

    CONFIG += c++14
    
    • 1

    坑4:libtorch,需要添加其他命令,才能使用GPU

    LIBS += -INCLUDE:?warp_size@cuda@at@@YAHXZ
    
    • 1

    我的pro项目文件配置(release版本、笔记本)

    在这里插入图片描述

    我的pro项目文件配置(台式机)

    在这里插入图片描述

    台式机测试结果

    在这里插入图片描述

    警告(C4819: 该文件包含不能在当前代码页(936)中表示的字符。)

    作如下更改即可
    在这里插入图片描述

    解决 QT 界面中文显示乱码问题(QT5)

    1. 直接使用函数QStringLiteral(“中文”) ,即可解决中文显示乱码问题。
    2. 在头文件中添加如下代码
    #if defined(_MSC_VER) && (_MSC_VER >= 1600)
    #pragma execution_character_set("utf-8")
    #endif
    
    • 1
    • 2
    • 3
  • 相关阅读:
    flink技术总结待续
    【微服务】Sentinel 适配网关进行流量控制
    排序算法——简单选择排序
    CTFHUB-web-文件上传
    Python数据分析--Numpy常用函数介绍(2)
    Java异常的处理(超详细)
    胡说八道(24.6.11)——数电及STM32
    聚观早报 | 美团打车接入腾讯出行;腾讯音乐将在港交所上市
    我的自编全线连线计算程序目前世界领先技术水平
    软件测试之集成测试
  • 原文地址:https://blog.csdn.net/weixin_48192326/article/details/127709774