lab/技術情報/openCVonFCC
compile 最終版 †
Opencvと研究用ライブラリをFCCコンパイルでするのに本当に必要なものは何なのか,を探るページです.
contetns †
手順 †
openCV †
事前に各種設定ファイルに手を入れる †
- openCVはGCC互換のコンパイラでコンパイルすることを前提としているようなので,FCC向けにちょこちょこいじる.
- configureの2965行目のexitをコメントアウト
- configureの2999行目のexitをコメントアウト
- configureの3046行目のexitをコメントアウト
- cv/src/cvcalibinit.cpp の70行目に
#define PRINTF(...)
を追加
- cv/src/cvkdtree.cppの46行目に
using namespace std;
を追加
- cvaux/include/cvvidsurv/.hppの51行目に
#define __GNUC__
を追加し,61行目に
#undef __GNUC__
を追加.
- include/opencv/cxmisc.hの122行目に
#define __GNUC__
を追加し,137行目に
#undef __GNUC__
を追加.
- cv/src/cvcalibinit.cpp の70行目に
#define PRINTF(...)
を追加
- cv/src/cvkdtree.cppの46行目に
using namespace std;
を追加
- cvaux/include/cvvidsurv/.hppの51行目に
#define __GNUC__
を追加し,61行目に
#undef __GNUC__
を追加.
- opencv/configure.inの19856行目,DEF_CXXFLAGSという箇所をコメントアウト.これで-O3,-fomit-frame-pointerオプションが入らなくなる.
- include/opencv/cxmisc.hのかきかえ:
コンパイル開始 †
setenv CXX FCC
setenv CXXFLAGS "-frtti --variadic_macros --alternative_tokens -DUSE_C_ALLOCA -Dalloca=C_alloca -Kparallel,reduction,OMP
../configure --disable-apps --enable-static --disable-shared --without-python --prefix=/home/t/tXXXXX/opencv-1.1.0.FCC.Kparallel
make
make install
自前ライブラリ †
makefileの修正 †
- 続いて自前のライブラリを使用したプログラム.まずはmakefileにgtkとgtherad関係のライブラリを追記:
INC += `pkg-config --cflags opencv gtk+-2.0 gdk-pixbuf-2.0`
LIB += -ltiff -lpng -ljpeg `pkg-config --libs opencv gtk+-2.0 gdk-pixbuf-2.0` -lgthread-2.0
- 注意:これらのライブラリはopencv関係のライブラリよりも先にリンカに呼び出されなければならない.そこでMakefileにはopencv->gtk->gthreadの順で記載する.ライブラリは後ろから順に呼び出されるようである.
- さらに
CFLAGS = --variadic_macros --alternative_tokens -DUSE_C_ALLOCA -Dalloca=C_alloca -Kparallel,reduction,OMP
をコンパイラオプションとして追加.
- "-frtti"
コンパイル †
make # => 勝ち!
いやー,1ヶ月近く,格闘した甲斐がありますた・・・&cry;
comment †
#comment_kcaptcha