1

プログラムにPCL1.6、OpenCV 2.4.2(Qt)を使用していますが、このフラン(1.7.1)の競合を解決できません。

私はすでにインターネットでそれについてたくさん読んでいて、ほとんどの解決策を試しました(使用しないusing namespace cv、OpenCVの最新バージョンを更新し、OpenCVインクルードの前にPCLインクルードを置くなど)が、それでもPCLとOpenCVを一緒に使用するときはいつでもflann-lib(PCLが使用する)は問題を引き起こし、たとえばこのコード行に対してtypedef flann::Index<Dist> FLANNIndex;

/usr/include/pcl-1.6/pcl/kdtree/kdtree_flann.h:74:エラー:「flann」はタイプを指定していません

他に回避策はありますか?

4

2 に答える 2

3

同じ問題に遭遇しました。

opencvには1つの実装があり、pclには別の(おそらく同じ)実装があります。

元々、それらは別々の名前空間に住んでいますが、あなたが好きなら

using namespace cv;
using namespace pcl;

あなたはそこで対立を得る。

したがって、その行をスキップし、using namespace cv;代わりにコード内のcv::anythingを使用して解決しました。

于 2013-02-28T12:12:07.900 に答える
2

解決策を見つけたようですが、それが最善かどうかはわかりません。

  1. ../include/pcl-1.6/pcl/kdtree/kdtree_flann.hに追加#include <flann/flann.h>しましたが、その後、上記のエラーはなくなりました。

  2. しかし、OpenCVはその「flann / flann.h」を見つけるのに苦労していたので、.. / include / opencv2 / flannのディレクトリをflanncvに変更しました。もちろん、これを含むすべての.hファイルに対してこれを行う必要がありました。ディレクトリも。

これはあまり適切な解決策ではありませんが、今のところ機能しています。

于 2012-08-13T13:24:53.187 に答える