C++頭文件的順序

C++頭文件的順序


在同時使用opencv和Eigen庫時會遇到數據的相互轉換的問題,即使用eigen2cv()cv2eigen()之類的函數,這時要注意一個隱藏的大坑,那就是Eigen的頭文件要放在opencv的頭文件之前,否則會出錯!!!
具體原因筆者沒有深究,暫且mark一下,以後編程的時候也要注意:

  • 系統的頭文件要放在最前面;
  • 其次是語言相關的;
  • 然後比較古老的第三方庫頭文件;
  • 比較新的第三方庫頭文件;
  • 最後纔是自定義的頭文件。

正確的方式如下:

……
#include <./eigen3/Eigen/Dense>//這兩個頭文件必須放在opencv頭文件之前
#include <eigen3/Eigen/Core>

#include <opencv2/opencv.hpp>
#include <opencv2/core/eigen.hpp>
……
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章