OpenCVでBRIEFとORBを使用したいのですが、OpenCVで(マッチングを高速化するために)SSE4.2を使用するには、gcc4.3以降でSSE4.2オプションを有効にしてOpenCVをコンパイルする必要があります。
Mac OSX10.6.8のデフォルトバージョンであるgcc4.2.1を使用してOpenCVをコンパイルするのに問題はありません。
次に、Macportsを使用してgcc4.3、4.4、4.5、4.6、4.7、4.8をインストールし、gccを新しいものに切り替えてみました。私は最初にOpenCVWebサイトの指示のようなデフォルト設定でOpenCVをインストールしようとしました。しかし、gcc4.2.1を使用したときのようにコードをコンパイルできませんでした。gcc4.2.1では問題ないことに注意してください。gcc4.3以降で問題が発生します。
問題の原因を教えてください。エラーはコンパイラの互換性に起因するようです。
いくつかのエラーは次のとおりです。
OpenCV-2.4.0/modules/highgui/src/window_cocoa.mm: In function 'void cvDestroyAllWindows()':
OpenCV-2.4.0/modules/highgui/src/window_cocoa.mm:198:21: error: expected ';' before 'in'
OpenCV-2.4.0/modules/highgui/src/window_cocoa.mm:198:21: error: 'in' was not declared in this scope
OpenCV-2.4.0/modules/highgui/src/window_cocoa.mm:198:24: error: expected ';' before 'list'
In file included from /opt/local/include/libavformat/avformat.h:42:0,
from OpenCV-2.4.0/modules/highgui/src/ffmpeg_codecs.hpp:78,
from OpenCV-2.4.0/modules/highgui/src/cap_ffmpeg_impl.hpp:56,
from OpenCV-2.4.0/modules/highgui/src/cap_ffmpeg.cpp:45:
/opt/local/include/libavcodec/avcodec.h:554:1: internal compiler error: Segmentation fault
Please submit a full bug report,