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裏面即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章