画像処理径は、やっぱりCore i7で、高速処理するのが良い。
今までは、勉強不足でWindowsの開発環境と、Linuxの開発環境をそれぞれ作っていたのだけど、
Makwfileの変換ツールとか、ちょっとした小ネタのツールで、問題はなく相互で開発をしていた。
ただ、も一度考えると、無駄かなぁと考えて、
Eclips CDTの為に、インストールしていたMinGWで共通の環境を作ってみようと、
元旦に設定した時のメモ
POSIX thread も追加でインストール
POSIX thread も追加でインストール
(1) MinGWと、MSYSのインストール
これは、沢山説明しているサイトがあるので、そちらを見てチョンマゲ。
ただ、CDTを使うなら、C:\MinGWに、インストールする事
これも、忘れちゃダメよ
mingw-get update
mingw-get upgrad
mingw-get install xxxx xxxxは、欲しいソフト
pkg-configは、下のURLから4つのパッケージをdownload、解凍しC:\mingwに上書き
http://www.gtk.org/download/win32.php
pkg-configは、下のURLから4つのパッケージをdownload、解凍しC:\mingwに上書き
http://www.gtk.org/download/win32.php
gettext-runtime
glib
gtk+
pkg-config
(2) MSYSの設定
起動時の環境変数、Aliasなどの設定
これは、.bashrcで行う。ついでに、
自分のサンプル
if [ -n "${PS1:-}" ]; then
export PS1="\[\e]0;\w\a\]\n\[\e[35m\]\D{%H%M%S} \[\e[32m\]\u
\[\e[0m\]\n\$ "
fi
umask 22
export LC_ALL=C
export LANGUAGE=en_US.UTF-8
export C_INCLUDE_PATH=/e/opencv/build/include
export CPLUS_INCLUDE_PATH=/e/opencv/build/include
export LIBRARY_PATH=/e/opencv/build/x86/mingw/lib
export PKG_CONFIG_PATH=/e/opencv/build/x86/pkg-config
#ALIAS set
alias ls='ls --color=auto'
alias ll='ls -al'
alias l='ls'
alias h='history 100'
alias cdhttp='cd /var/http'
alias n='cd /home/Naoki;ls -al --color=auto'
alias rb='cd /f/robot/2W/2w/stereo'
ついでに、.profile
exec /bin/bash
(3) OpenCVのライブラリー
前の投稿で記述したMinGWのOpenCVの、ライブラリー名を変更
make などをすると、ライブラリーが無いとか、メッセージがでるので、
当該のライブラリーをコピーして、リネームする。
それぞれの人の環境で違うとおものうで、、、、手作業
(4) Makfileは、Linuxと同じものが使える
CDT上で開発するけど、結構、makeする事が多い。
MSYSは、bashシェル上が動くから、ちゃんとpkg-configも展開される。
ただし、opencvは、2.4.7から、mingw用ライブラリーは
自分でbuildしなければならなかった。
その時に、unix-installにできるopencv.pcは、WindowsのドライブがE:などのように
指定される。これは、これで良いのだが、Msys上では、E:は変換されない
従って、新たにpkg-configというディレクトリーを作って、
ドライブ指定を E: から /e/ に変更したopencv.pcを作っておく。
それをexport PKG_CONFIG_PATH=/e/opencv/build/x86/pkg-config と、
.bashrcで設定している。
ただし、opencvは、2.4.7から、mingw用ライブラリーは
自分でbuildしなければならなかった。
その時に、unix-installにできるopencv.pcは、WindowsのドライブがE:などのように
指定される。これは、これで良いのだが、Msys上では、E:は変換されない
従って、新たにpkg-configというディレクトリーを作って、
ドライブ指定を E: から /e/ に変更したopencv.pcを作っておく。
それをexport PKG_CONFIG_PATH=/e/opencv/build/x86/pkg-config と、
.bashrcで設定している。
これで、Mkafileは、Msys(Windows)と、Linuxで同じものが使える。
例えば、、、、
TARGET = pp
CC = g++
OBJS = $(TARGET).o
CFLAGS = -Wall -O2
LDFLAGS = -lm
OPENCVINC = `pkg-config --cflags opencv` -I/usr/include
OPENCVLIB = `pkg-config --libs opencv`
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) -o $@ $(OBJS) $(LDFLAGS) $(OPENCVLIB)
.cpp.o:
$(CC) -c $< -o $@ $(CFLAGS) $(OPENCVINC)
.c.o:
$(CC) -c $< -o $@ $(CFLAGS) $(OPENCVINC)
clean:
rm -f $(TARGET) $(OBJS)
(5) その他メリット
・gcc, g++ 開発 は、超ラクかも
多少のリビジョンの違いはあるけど、WindowsとLinux側で、同じソースが動く
従って、Windosw側(MSYS)で開発して、Linuxにソースを送ってmakeするだけ。
だから、sambaなどで共有設定しておけば、面倒はかなり減る。
ただし、日本語は、わからない。僕は、日本語をソースコード内で使わない。
・ シェル類が、同じものが使える
ルートになるパス設定だけ、環境変数を読むようにしておけば、
同じシェルが使える
ということで、「もっと早くやっとけばよかった」
追加 POSIX thread ---------------------------------------------
ダウンロード https://sourceware.org/pthreads-win32/
The folder "Pre-built.2" contains the folders "lib" and "include", copy its contents into the MinGW folders of the same name.
The folder "dll" contains pthreadGC2.dll and pthreadGCE2.dll , copy to MinGW/lib.
Important if using exception handling: Compile your application with the additional compiler switch "-mthreads".
追加 POSIX thread ---------------------------------------------
ダウンロード https://sourceware.org/pthreads-win32/
The folder "Pre-built.2" contains the folders "lib" and "include", copy its contents into the MinGW folders of the same name.
The folder "dll" contains pthreadGC2.dll and pthreadGCE2.dll , copy to MinGW/lib.
Important if using exception handling: Compile your application with the additional compiler switch "-mthreads".
Peace!!
0 件のコメント:
コメントを投稿