笔者把编译生成的win32 Release exe文件复制到另外一台电脑上,却发现程序不能运行,报错如下:
报错提示缺失动态链接库pcl_common_release.dll,那为什么在编译生成的电脑就不说缺失动态链接库,而在另一台电脑就缺失呢?
因为笔者已经把pcl_common_release.dll 所在文件夹写在系统环境变量path里,而在另一台电脑,没有安装PCL点云库,不存在该.dll文件,也没有将动态链接库所在文件位置写在环境变量。
解决方案有两种:
一,如果运行电脑安装了所需的PCL库,那么只需检查其是否将dll文件位置写入系统环境变量path,在笔者电脑,其位置位于C:Program Files (x86)PCL 1.6.0in,将其加入环境变量,运行exe,不再出现同一个错误,如果还提出缺失别的库,安装同样的方法添加即可。
二,对于没有安装PCL库的电脑或者不愿添加环境变量,可以有一种鲁棒的方法,就是找到对于的缺失的dll文件,将其放在待运行exe文件同一个文件夹下,因为系统的搜索位置包含了exe文件所在目录和环境变量path中指定的那些文件目录,这样也解决了这个问题,只是添加好这个库后,再运行程序,可能会提示缺失别的库,安装同样的方法依次添加即可。在任意一台电脑运行,只要把exe文件和所在文件夹的所有文件拷到另一台电脑同一文件夹下,就不会出现缺失dll的错误。