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

OpenCASCADE(二)在QT下配置及问题记录

程序员文章站 2024-01-20 17:46:52
OpenCASCADE在QT下配置...

这里需要先去OpenCASCADE官网下载,我这里下载的是源码,用VS2017编译成静态库后,再进行QT配置

这里配置主要修改pro文件,跟CMake类似,所以我把pro文件贴出来,相互学习。

一、编译环境

  1. Windows 10 64位;
  2. Qt 5.14.2 MSVC2017 64bit
  3. OPEN CASCADE 7.5

二、环境变量

首先按照其他博客,需要配置环境变量

选择编译好的项目文件,其中“libd”为debug版本,由于我当时测试时,未编译release版本。

OpenCASCADE(二)在QT下配置及问题记录

新建环境变量 CASROOT

OpenCASCADE(二)在QT下配置及问题记录

 

三、pro文件

导入QT,需要修改pro文件,进行链接

注:$$(CASROOT),加了小括号表示系统环境变量,$$compiler表示自己定义的变量

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    mymainwindow.cpp \
    mywidget.cpp

HEADERS += \
    mymainwindow.h \
    mywidget.h

FORMS += \
    mymainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

#add by chen270--------------------------------------------------
win32
{
    #包含路径,导入头文件
    INCLUDEPATH += $$(CASROOT)/inc

    #确定编译器
    #注:这里我试了MSVC2015,2017都不行,所以采用msvc
    win32-msvc {
        compiler=vc14
    }
    
    message("(CASROOT) = $$(CASROOT)")
    message("compiler = $$compiler")

    CONFIG(debug, debug|release) {  #x86 debug
         LIBS += -L$$(CASROOT)/win64/$$compiler/libd
     }
     else {  #x86 release
         #注:我只编译了debug版本,如果没有编译release,需要把两个libs路径都改为libd
         LIBS += -L$$(CASROOT)/win64/$$compiler/lib
     }
}

LIBS += -lTKernel -lTKMath -lTKService -lTKV3d -lTKOpenGl \
        -lTKBRep -lTKIGES -lTKSTL -lTKVRML -lTKSTEP -lTKSTEPAttr -lTKSTEP209 \
        -lTKSTEPBase -lTKGeomBase -lTKGeomAlgo -lTKG3d -lTKG2d \
        -lTKXSBase -lTKShHealing -lTKHLR -lTKTopAlgo -lTKMesh -lTKPrim \
        -lTKCDF -lTKBool -lTKBO -lTKFillet -lTKOffset \
#add end by chen270---------------------------------------------

 

“TKernel.lib”错误

这里得确保libs路径正确,否则会出现无法打开文件“TKernel.lib”错误

若qt没有打印出这两句话,说明路径存在问题,可能是编译器的选择,没有选择MSVC,以及系统环境变量没有生效,可能需要重启电脑

OpenCASCADE(二)在QT下配置及问题记录

成功,便已经把OpenCASCADE库和头文件导入了

 

 

程序异常结束

程序异常结束。

The process was ended forcefully.

F:\QT\2021OpenCASCAD\build-0112Test-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug\debug\0112Test.exe crashed.

遇到上述错误是因为path环境变量中没有加入动态库链接

这里需要添加自己编译的和三方库依赖的

OpenCASCADE(二)在QT下配置及问题记录

配完环境变量需要重启QT(必须重启),然后防止变量没有更新,需要多运行几次程序 ctrl +R 即可

本文地址:https://blog.csdn.net/weixin_42513339/article/details/112554609

相关标签: 图形学 qt