OpenCVでBRIEFとORBを使用し、OpenCVでSSE4.2を使用して(高速マッチングのために)OpenCVをコンパイルする必要があります。 SSE4.2オプションが有効になっています。OpenCVでのgcc 4.3以上でのOpenCVコンパイルエラー
私のMac OS X 10.6.8のデフォルトバージョンであるgcc4.2.1でOpenCVをコンパイルするのに問題はありません。
次にMacportsを使ってgcc4.3、4.4,4.5,4.6,4.7,4.8をインストールし、gccを新しいものに切り替えました。 OpenCV Webサイトの指示のようなデフォルト設定で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,
参考のため、違反コードは次のように見えます: 'for(NSString * list in key)'。私は通常、この 'in '構文をC++で使用しないので、あまりよく知られていませんが、他の人がそれを使って質問に答えることができます。 – TaZ
さらに、 '内部コンパイラエラー:セグメンテーションフォールトは完全なバグレポートを提出してください.'恐ろしいかもしれませんが、gccのインストールに何か問題があったかもしれません。 – TaZ