这里需要先去OpenCASCADE官网下载,我这里下载的是源码,用VS2017编译成静态库后,再进行QT配置
这里配置主要修改pro文件,跟CMake类似,所以我把pro文件贴出来,相互学习。
一、编译环境
- Windows 10 64位;
- Qt 5.14.2 MSVC2017 64bit
- OPEN CASCADE 7.5
二、环境变量
首先按照其他博客,需要配置环境变量
选择编译好的项目文件,其中“libd”为debug版本,由于我当时测试时,未编译release版本。
新建环境变量 CASROOT
三、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库和头文件导入了
程序异常结束
程序异常结束。
The process was ended forcefully.
F:\QT\2021OpenCASCAD\build-0112Test-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug\debug\0112Test.exe crashed.
遇到上述错误是因为path环境变量中没有加入动态库链接
这里需要添加自己编译的和三方库依赖的
配完环境变量需要重启QT(必须重启),然后防止变量没有更新,需要多运行几次程序 ctrl +R 即可