2

Boost ライブラリ、特に OpenCV で使用する場合のファイルシステムに問題があります。どうやら問題は、Boost、OpenCV、および Eigen ライブラリ間の競合で説明されているものと似ていますか? . その特定のケースでは、「using namespace」ステートメントの前にすべての「#include」ステートメントを付けることで問題が解決されました。私の場合、これは最初からこの方法で行われました。

私は OpenCV 2.4.3 と Boost 1.48 を使用しています (1.52 でもまったく同じ問題が発生しました)。プログラミングは、Eclipse CPP プラグインと MinGW を使用して Windows 7 (64 ビット) で行われています。

プログラムをビルドしようとすると、次のエラーが発生します。

C:\Boost\boost_1_48_0/boost/type_traits/decay.hpp:28:66: error: 'cvflann::<anonymous enum>' is/uses anonymous type
C:\Boost\boost_1_48_0/boost/type_traits/decay.hpp:28:66: error:   trying to instantiate 'template<class T> struct boost::remove_reference'
C:\Boost\boost_1_48_0/boost/type_traits/decay.hpp:38:17: error: 'cvflann::<anonymous       enum>' is/uses anonymous type
C:\Boost\boost_1_48_0/boost/type_traits/decay.hpp:38:17: error:   trying to instantiate    'template<class T> struct boost::remove_reference'

私の場合、using namespace ステートメントは include ステートメントの後にあります。

#include <opencv2/opencv.hpp>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <vector>
#include <boost/filesystem.hpp>
#include <boost/multi_index_container.hpp>

using namespace std;
using namespace cv;
using namespace boost::filesystem;

この問題を解決する方法についてのアイデアは大歓迎です:D:D:D

よろしく、 ルイス

4

1 に答える 1

1

セクションを削除することをお勧めします:

using namespace std;
using namespace cv;
using namespace boost::filesystem;

コードでスコープ演算子 を使用します。::

これらの2つの異なるモードの例を次に示します。

于 2013-01-24T16:45:27.823 に答える