项目工程中库使用Debug与release
在各种库使用中除了需要保证版本统一,最好如果工程是Debug那么库也是Debug,交叉使用会出现各种异常问题,汇总如下:
1、GMSH与opencascade 兼容性
背景:debug调用已加载的opencascade 是release版本,GMSH也需要是release版本。
GMSH是基于opencascade的内核库,所以在cmake编译GMSH环境时需要和已有的opencascade版本相同,同时最好都编译debug和release版本分别对应工程,不然可能编译正常但是在运行时各种异常
2、opencv库使用
背景:工程debug调用release接口。
opencv打包编译的接口文件debug版本只能在有VS版本的电脑运行,在打包给客户必须时release版本,当然如果你现在工程时debug版本需要使用opencv库打包给用户,可以通过debug工程调用release接口的方式,验证了可行但是可能会有一些BUG。
3、opencascade与vtk 环境
背景:工程debug调用release库
项目中使用了vtkAbstractWidget继承,使用小部件 this->CallbackMapper->SetCallbackMethod异常,同事反馈之前各种继承有问题应该也是这个问题。后面更改环境发现是工程debug与release库有冲突,需要把工程和库统一为debug或者release。