欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【三维可视化Qt+OPEN CASCADE-001】傻瓜式配置——可在Qt creator下运行github例程

程序员文章站 2022-05-30 10:16:10
...

前言

因为一个大项目需要,在QT界面利用occ做三维可视化的东西,所以需要配置。网上的配置攻略不是在VS下用MFC做,就是用VS+QT的插件,也有老哥用Qt Creator做,主要是下面两个:
occQt
出自occ方面的大神,eryar
多说一句,虽然是大佬,但是和蔼可亲,之前配置有问题,发邮件给大佬,大佬没多久就回复了,给大佬点赞。
Windows系统下QT+OpenCasCAD仿真开发
还有个这个老哥,目测研究的内容和我们教研室方向还挺像,有缘有缘,也是大佬。
但是,问题来了,按照上面两个老哥的攻略,我还是运行不了,让我十分苦恼。好在后来自己摸索出来了,主要问题是环境配置!!!环境配置!!!环境配置!!!

一、开发环境

1、Windows 10 64位;
2、Qt 5.14.1 MSVC2017 64bit(扛不住,归根到底大恒相机C++接口不支持MINGW,我只能投入MSVC怀抱了,不过目测OCC也不支持?)
3、OPEN CASCADE 7.4(不多说,直接上最新版)

二、安装与环境配置

1、安装Visual Studio 2017
2、安装Qt 5.14.1与自带的Qt Creator 4.11.1
3、重头戏来了,官网下载DOWNLOAD OPEN CASCADE TECHNOLOGY 7.4.0
【三维可视化Qt+OPEN CASCADE-001】傻瓜式配置——可在Qt creator下运行github例程
注意:直接安装版即可,官网在配置说明里面也说了,安装版直接支持vs2017,虽然是vc14,但实际上是vc141,也就是vc++ 2017,然后里面的第三方库啥的也自带,也不用编译啥的。
下载好了直接安装即可。
我安装在:

E:\OpenCASCADE-7.4.0-vc14-64

4、配置环境变量
环境变量十分关键,环境变量配置不好,程序编译成功,但是一运行就crash,让我十分苦恼。环境变量就是在path里面加目录:
【三维可视化Qt+OPEN CASCADE-001】傻瓜式配置——可在Qt creator下运行github例程
比较多,该加的都加了,估计也有不该加的,参考我的安装路径,配置如下:

E:\OpenCASCADE-7.4.0-vc14-64\ffmpeg-3.3.4-64\bin
E:\OpenCASCADE-7.4.0-vc14-64\freeimage-3.17.0-vc14-64\bin
E:\OpenCASCADE-7.4.0-vc14-64\freetype-2.5.5-vc14-64\bin
E:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\win64\vc14\bin
E:\OpenCASCADE-7.4.0-vc14-64\qt5.11.2-vc14-64\bin
E:\OpenCASCADE-7.4.0-vc14-64\rapidjson-1.1.0\bin
E:\OpenCASCADE-7.4.0-vc14-64\tbb_2017.0.100\bin\intel64\vc14
E:\OpenCASCADE-7.4.0-vc14-64\tbb_2017.0.100\bin\intel64\vc14_ui
E:\OpenCASCADE-7.4.0-vc14-64\tcltk-86-64\bin
E:\OpenCASCADE-7.4.0-vc14-64\vtk-6.1.0-vc14-64\bin
E:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\win64\vc14\lib
E:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\inc

5、去github下载eryar大佬的例程,网址就是上面提到的网址。大佬的例程下载下来,按照大佬的readme文件,把pro文件里面的CASROOT改成自己的安装路径后运行还是不行,会提示找不到头文件:
【三维可视化Qt+OPEN CASCADE-001】傻瓜式配置——可在Qt creator下运行github例程
等于还是路径问题,然后我发现,大佬引用CASROOT的时候,加了括号:

    INCLUDEPATH +=  \
        $$(CASROOT)/inc

把括号去掉,就ok了,然后把pro文件里面所有CASROOT前后的括号全部去掉,搞定!
修改后的pro文件如下:

#-------------------------------------------------
#
# Project created by QtCreator 2013-08-18T15:52:09
#
#-------------------------------------------------

QT       += core gui opengl

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = occQt
TEMPLATE = app

SOURCES += main.cpp \
    occQt.cpp       \
    occView.cpp

CONFIG += c++11

HEADERS  += \
    occQt.h \
    occView.h

FORMS    += \
    occQt.ui

RESOURCES += \
    occqt.qrc

CASROOT = E:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\

win32 {
    DEFINES +=  \
        WNT
    INCLUDEPATH +=  \
        $$CASROOT/inc

    win32-msvc2010 {
        compiler=vc10
    }

    win32-msvc2012 {
        compiler=vc11
    }

    win32-msvc2013 {
        compiler=vc12
    }

    win32-msvc2015 {
        compiler=vc14
    }

    win32-msvc {
        compiler=vc14
    }


    # Determine 32 / 64 bit and debug / release build
    !contains(QMAKE_TARGET.arch, x86_64) {
        CONFIG(debug, debug|release) {
            message("Debug 32 build")
            LIBS += -L$$CASROOT/win32/$$compiler/lib
        }
        else {
            message("Release 32 build")
            LIBS += -L$$CASROOT/win32/$$compiler/lib
        }
    }
    else {
        CONFIG(debug, debug|release) {
           message("Debug 64 build")
           LIBS += -L$$CASROOT/win64/$$compiler/lib
           #message("$$CASROOT/win64/$$compiler/lib")
        }
        else {
            message("Release 64 build")
            LIBS += -L$$CASROOT/win64/$$compiler/lib
        }
    }
}

linux-g++ {
    INCLUDEPATH +=  \
        /usr/local/include/opencascade

    LIBS += \
        -L/usr/local/lib/
}

LIBS +=         \
    -lTKernel   \
    -lTKMath    \
    -lTKG3d     \
    -lTKBRep    \
    -lTKGeomBase\
    -lTKGeomAlgo\
    -lTKTopAlgo \
    -lTKPrim    \
    -lTKBO      \
    -lTKBool    \
    -lTKOffset  \
    -lTKService \
    -lTKV3d     \
    -lTKOpenGl  \
    -lTKFillet

三、运行

终于成功了,泪奔!
【三维可视化Qt+OPEN CASCADE-001】傻瓜式配置——可在Qt creator下运行github例程
虽然整个从下载OCC到配置的过程只有一两天,但是不停报错、崩溃真的好痛苦啊,再次感谢在网上发布教程的各位大佬,包括但不限于:
OPEN CASCADE
Windows系统下qt开发融合pylon,opencv,opencascade 等库的工程
Opencascade的安装
Windows系统下QT+OpenCasCAD仿真开发
Qt程序异常结束
Opencascad 7.0编译问题
eryar/occQt
最后即兴赋诗一首:
天若有情天亦老,人间正道是沧桑。
欢迎有相关配置问题的老哥评论,我们一同讨论。

相关标签: OPEN CASCADE