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

最近在研究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里面即可。

你可能感兴趣的:(Qt+Boost编译出现Parse error at "BOOST_JOIN")