eclipseCDT + MinGW + OpenCV でC++プログラミング(4) | 『徒然に見ていただきたい事ども』のブログ

『徒然に見ていただきたい事ども』のブログ

日本中の多くの人に思わず見ていただきたく思った事を、日々投稿していくブログです。

前回までは、MinGWを使用してOpenCV2.4.13のパッケージに付属するソースファイル
からビルドしてライブラリ群を作成しました。きちんと作成されていることを確認するた
めに、テストプログラムをこれらのライブラリ群とリンクした実行ファイルを動かしてみ
ました。しかし、この実行ファイルは、32ビットのプログラムです。最近では、CPUにし
ろ、Windowsのようなオペレーティングシステム(OS)にせよ、64bitが当たり前になって
きています。当然、自分で作るプログラムも64bitでいきたいところです。32bitでは物
足りない人もいるかと思います。
それで、OpenCVも64bit化できれば本望です。MinGWを使用しているだけでは残念な
がら64bitには非対応です。それで、64bitに対応しているコンパイラという事で、MinGW
-W64を使用してやります。これは、MinGWプロジェクトの後継プロジェクトのようなもの
で、同じような要領で扱うことが出来るはずです。
この、mingw-w64 / GCC for Windows 64 & 32 bitsというページでダウンロードできま
す。
それではMinGW-W64をインストールしてやります。MinGW-W64をインストールした
下のbinパス(インストールしたパスがC:\Program Files\mingw64なら、C:\Program Files-
\mingw64\bin)をWindowsの環境変数、pathに設定します。MinGW-W64がインストール
出来たら、32bitの時と同じように、CMakeを使ってMakefileを作成し、これを使ってメー
クを実行します。
本当に64bit対応のライブラリが作られているか、バイナリエディタを使用して確認しま
す。.exeのファイルは実行ファイルだと、誰でもすぐにわかると思いますが、その中身
が64bitのコードになっているのか、32bitのコードになっているかは、すぐにはわかりま
せん。その見分け方は、Fomalhaut of Piscis Australis / [ win ] 実行ファイルが 32 ビ
ットか 64 ビットかを確認する方法
というページで教えていただきました。このページの
内容を参考に、実際に、OpenCVライブラリをリンクしてビルドした、32bitの実行ファイ
ルと、64bitの実行ファイルの16進ダンプコードを比較のために以下に貼り付けます。



↑32bit版の16進ダンプ。128バイト目から6バイトを見ます。



↑64bit版の16進ダンプ。128バイト目から6バイトを見ます。


では64bitバージョンのOpenCV2.4.13のライブラリをリンクして、テストプログラムを動か
してみましょう。
eclipse CDTを使用して、テストプログラム用のプロジェクトを作り、コンパイル、リンク、
実行と移ります。32bitバージョンのプログラムと64bitバージョンのプログラムの実行画
面を以下に貼り付けます。この両者は、ソースコード的にはほとんど同じです。(区別の
ために、ウィンドウタイトルなどを違えてありますが、他の部分は全く同一です)。
今回の記事はこれでおしまいです。最後までお読みいただきましてありがとうございま
した。それではまた。



↑32bit版の実行画面



↑64bit版の実行画面





*2016/6/14 追記
一部内容を修正しました。