从我安装OpenCASCADE几何平台到调试成功Ocaf框架,中间卸载重装几次OCC我都数不清了,每次都是因为忘记在调试的时候有哪些配置被自己改动了,所以当我第一次调试成功后,就直接又重新安装了一次,并做了记录
一、安装
虽然我个人从来不在C盘下安装,但团队传统都是安装在C盘根目录下,所以...嗯,直接选择安装在C盘根目录下,然后一直无脑梭哈next,直接就可以开始安装了
安装成功后,就可以开始调试Ocaf框架的步骤了
二、调试Ocaf框架
Step0:打开QQ音乐
播放自己爱听的歌。调试期间会出现很多稀奇古怪的报错,听歌不管是对你还是对键盘都好
Part1:调试Ocaf.vcxproj文件
首先打开Ocaf.vcxproj文件
文件在下面的目录中
C:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\samples\mfc\standard\06_Ocaf\adm\win\vc10
注:以下所有的报错信息都是我个人在实际调试中遇到的,如果与你的报错不一样,那只能祝你平安了my brother
此时如果直接运行,不出意外是会出意外的
错误列表截图如下
解决方案:
在Ocaf属性页中,打开C/C++菜单,选择常规->附加包含目录,在其中加入如下目录
C:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\inc
注:关于这个目录怎么来的问题,你搜索一下报错的第一个文件Standard_ShortReal.hxx文件,是不是能发现搜出两个同名文件,分别在两个文件夹中???此处秀一下工地英语,inc文件夹一般指include,也就是项目中需要包含的文件。
包含了inc文件目录之后,再次运行,不出意外也是要出意外的
错误列表截图如下
解决方案:
在Ocaf属性页中,直接选择第一个常规,找到Windows SDK版本,更改为10.0.17763.0
这时再运行,依旧会报错。错误列表截图如下
解决方案:
打开Ocaf属性页,直接选第一个常规,找到平台工具集,选择Visual Studio 2017(v141)
第四次运行,报错信息如下:
解决方案:
Ocaf属性页,选择链接器->常规->附件库目录,添加文件目录
C:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\win64\vc14\lib
到这里,咱们准备工作就算做完了,此时运行后报错应该是:无法打开文件mfcsample.lib
Warning:这里的报错非常坑爹,一共调试了三天,其中两天在搞这个报错。还有,这个文件别费精神去找了,压根没这个文件,需要自己去编译生成
三、调试mfcsample
打开文件目录:C:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\samples\mfc\standard\mfcsample\adm\win\vc10
你会看见一个文件 mfcsample.vcxproj,调试出mfcsample项目,就算成功一半
关闭Ocaf项目,然后打开mfcsample.vcxproj文件(关闭Ocaf主要是怕你把mfcsample的设置给设置到Ocaf中去),把之前Ocaf的设置,全部在mfcsample中再设置一遍,总结如下
1、更改Windows SDK为10.0.17763.0
2、选择平台工具集Visual Studio 2017(v141)
3、链接器 -> 添加库目录
C:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\win64\vc14\lib4、C/C++ -> 附加包含目录
C:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\inc
然后运行后报错信息如下
解决方案:
打开mfcsample属性页,链接器->高级->目标计算机,更改为MachineX64 (/MACHINE:X64)
此时再运行,你会发现一个非常郁闷的东西
之前报错信息的第一个写的是:模块计算机类型“x64”与目标计算机类型“x86”冲突
而在经过更改目标计算机后,报错信息变成了:模块计算机类型“x86”与目标计算机类型“x64”冲突
经过我不懈的努力,我发现
在【本地Windows调试器】旁边,默认是x86,你将他改成x64,问题就解决了
此时再运行,它还是跑不出来,报错信息如下
但是!!!重要的事情说三遍!!!
到此为止!到此为止!到此为止!!!
你到目录C:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\samples\mfc\standard\win64\libd中去看看,你会发现这个mfcsample.lib居然生成出来了(如果没经过之前的步骤,这里会是空的)
此时,将Win64下的bind文件夹和libd文件夹复制一份,搬到目录C:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\samples\mfc\standard\win32
注意点:复制的是文件夹!!!你要是勤快,也可以将两个文件夹下的文件分次搬到win32下对应的文件夹下
这时mfcsample的问题就算是解决了
四、继续调试Ocaf
关闭mfcsample项目,打开Ocaf项目,运行一下,报错信息如下
是不是感觉很眼熟,跟之前mfcsample项目报错一模一样,解决方案当然也是一样的,如下:
打开Ocaf属性页,链接器->高级->目标计算机,更改为MachineX64 (/MACHINE:X64)
然后再把【本地Windows调试器】旁边的x86更改为x64
这时候运行应该依旧是会报错的,会告诉你找不到TKBin.dll、TKXml.dll、TKVRML.dll、TKSTL.dll这些文件,
这个问题解决方案如下:
打开下面的文件目录
C:\OpenCASCADE-7.4.0-vc14-64\opencascade-7.4.0\win64\vc14\bin
报错说找不到的文件都在这个文件夹中,将这个文件夹中所有的.dll文件放进文件目录C:\Windows\System32下(同名文件可跳过)。
注:全部搬进去是因为如果你只拷贝了他报错的四个文件,确实你会发现之前的报错没了,但是他又再次报错缺少另外四个文件,这四个文件还是在那个bin文件夹中,再搬四个,又报错四个……,别问我怎么知道的
将dll文件全部拷贝进system32文件夹下之后,应该就能跑出Ocaf框架了