在使用VS2022编译别人使用VS2019搭建工程的时候发现,出现如下列代码处和下图的问题,问题在于使用的PCL库中Memory.h文件内handmade_aligned_free函数内存释放出错问题。
/** \internal Frees memory allocated with handmade_aligned_malloc */
EIGEN_DEVICE_FUNC inline void handmade_aligned_free(void *ptr)
{
if (ptr) {
EIGEN_USING_STD(free)
free(*(reinterpret_cast<void**>(ptr) - 1));
}
}
而在工程转接过来的时候,VS:通过项目属性->C/C++->代码生成->启用增强指令集->AVX设置如下图所示,通过我的查阅发现,使用VS2019编译此项目时,必须设置成如下设置,否则也会出现PCL库中Memory.h文件内handmade_aligned_free函数内存释放出错问题
而在VS2022中,要解决这个内存释放问题,则需要改成 VS:通过项目属性->C/C++->代码生成->启用增强指令集->未设置,具体修改位置如下图所示。