Qt+Boost编译出现Parse error at "BOOST_JOIN"

来源:互联网 发布:佳能ip2780清零软件 编辑:程序博客网 时间:2024/06/10 09:16

最近在研究PCL,发现这个点云库是个很不错的东西。里面需要经常浏览*.pcd(点云数据集)文件,遂打算自己用Qt写个小程序方便自己读取,后来便遇到了这个Parse error at "BOOST_JOIN"问题。因为PCL有部分实现是基于Boost库的,所以就出现了这个Qt与Boost编译时候发现的Parseerror。

 

稍微研究过Qt的人都会有这样的感受:Qt编译代码特别慢,因为Qt需要用Moc工具moc你的代码,具体原理自己Google。这里问题的根源也是这个Moc工具造成的,只需将自己的包含头文件(用到Boost库的部分)语句使用:

 

#ifndef Q_MOC_RUN#endif

 

 括起来即可,避免Qt的Moc工具对Boost的代码进行Moc。实际的操作类似:

#ifndef Q_MOC_RUN#include <pcl/visualization/cloud_viewer.h>#include <pcl/io/io.h>#include <pcl/io/pcd_io.h>#endif#include <QWidget>

 

将Qt外的头文件放在#ifndef...#endif里面即可。