win10+vs2013配置pcl 1.8.0

1、准备

1、环境:
windows系统(本文win10)、vs2013、查看自己电脑位数(请挪步百度)
pcl 1.8.0 win32+win64版本:
https://pan.baidu.com/s/1TYIXcWeRFiShK5Bhwx-EoQ 提取码:owig
说明:版本关于pcl的版本与VS201X的版本之间的联系,见此文
https://www.cnblogs.com/haoyul/p/6691088.html

2、开始配置

关于配置win64版本,推荐此文,很详细:
PCL1.8.0+VS2013+Win10 配置
补充:
项目属性----通用属性----C/C++ ----预处理器----加上以下两句,不然会报错

_SCL_SECURE_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS

在这里插入图片描述
如果已经按上述文章内的方法配置成功,下文可不看。
如果失败,请看下文
如果系统是32位,请看下文

3、配置win32版本

这里主要针对按照上述文章过程配置失败和遇到小问题的朋友。

1、问题1,提示没有找到xxx.dll

在这里插入图片描述
解决方法:检查系统环境变量或者项目属性里面的环境目录配置是否正确,点此处看关于环境变量和项目里的环境目录说明。

2、编译通过,但是运行失败

在这里插入图片描述
在这里插入图片描述
问题原因:安装的pcl 1.8.0 win64内的dll文件用于64位平台时出错,相关类型的文章:
https://blog.csdn.net/edd1e/article/details/44918719
https://blog.csdn.net/wu_nan_nan/article/details/50216475
https://blog.csdn.net/weixin_30511107/article/details/95549885

点此查看问题验证
解决方法:配置32位的版本

3、win32版本配置

如果是64位版本配置失败的朋友,请先执行以下步骤:
打开win32版本安装文件进行安装,方法和上述推荐安装64位版本的文章一致,但安装路径不要和之前64位一样(这里为了验证一些问题,没有对64位版本进行卸载)。
在环境变量配置这一步,做一些更改:
红框里是安装32版本后新增的
在这里插入图片描述
但是会发现PCL_ROOT这个变量路径已经变成win32的安装路径了,把它的路径重新改成之前win64的安装路径。点击新建一个,变量名为PCL_ROOT_WIN32,变量值为win32安装路径,如下:
在这里插入图片描述
再看系统变量里的Path,点击编辑,在之前win64配置过的路径上加个1(故意不让系统找到win64的正确路径),修改后如下所示:
在这里插入图片描述
在这里插入图片描述
上述并没有删除之前win64配置的环境变量,后面有关于环境变量的说明
(如果先建立了项目再改的环境变量,那么得重启VS,不然更改的环境变量不会生效)
接着打开vs2013按推荐文章内新建项目,跳过新建x64平台的步骤,直接在Debug|win32这里新建项目属性表
在这里插入图片描述
然后按推荐文章内方法添加库目录,包含目录,依赖项,只不过路径要选成后面的win32安装目录下的。
环境目录配置这一步跳过。
加入给出的测试源码。
编译运行,可能会出现无法打开“pcl_apps_debug.lib”和“pcl_simulation_debug.lib”
在这里插入图片描述在这里插入图片描述
这时打开win32版本安装目录下的lib文件夹,会发现是没有这两个.lib文件的,而再打开win64目录下的lib文件夹,就有这两个文件,将它俩复制到win32里的lib文件夹,再次编译运行。成了
在这里插入图片描述

4、关于依赖项、库目录、环境变量、包含目录、dll版本问题

说明:.lib是资源描述文件,描述.dll文件,详细可挪步百度

1、依赖项、库目录

本人的肤浅理解:属性表里面添加的依赖项就是告诉vs2013老板我需要用这些.lib文件,添加库目录就是告诉vs2013去这些地方找我要的.lib文件

2、环境变量

要用.lib文件,就得有.dll文件。我们之前加的环境变量,是让系统在这些目录下找我们要用的.dll文件,这就是为什么刚才要在win64的环境变量路径后面加1让系统找不到了,因为我们要找的是win32的.dll文件,如果用了win64的,那就会因为dll版本问题而出错
在这里插入图片描述
如果没有配置环境变量,那么在项目属性里面加上也是同样的效果,不过在系统里面配置好了后就不用每个项目都去添加一遍了
在这里插入图片描述
环境变量实验:
在已经成功运行的情况下,退出vs。
再次更改环境变量,去掉64位路径后面的1,在32位后面加1
在这里插入图片描述
完成后,再次打开vs,打开刚才的项目,再次运行,死掉了(看看项目里属性–配置属性–调试–环境这里有没有加上正确的路径,有的话还是会正常运行,删掉再次运行就能看到会死掉)。
这就说明了win32和win64版本要使用各自的dll文件,这里就是因为环境变量里找到了64位的路径,而32位的后面加了1,所以没找到,这时候使用的就是64位的dll,那么死掉就很正常了:
在这里插入图片描述
在这里插入图片描述

3、包含目录

包含目录是要用到头文件时(#include"xxx.h"),告诉vs2013在这里面去找

4、dll版本问题实验验证

做了一个实验,自己编写动态库用于被调用,分别用win32和x64生成mydlltest.dll以及mydlltest.lib文件
在这里插入图片描述
在这里插入图片描述
新建一个项目来调用dll(将32位下的mydlltest.dll以及mydlltest.lib复制进项目文件夹),新建的项目用32位编译,正常运行。
在这里插入图片描述
此时将64位的mydlltest.dll替换掉32位下的mydlltest.dll,结果跟配置pcl1.8.0win64版本的情况一样
在这里插入图片描述
在这里插入图片描述

花了两三天时间才把pcl配置好,所以
小白一个,边学边用,如有错漏,敬请指正
参考:
文中已列出

--------------------------------------------------------------------------------------------诺有缸的高飞鸟202005

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诺有缸的高飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值