ライブラリの使用方法、VisualStudioの設定方法

シェアする

  • このエントリーをはてなブックマークに追加
最近の記事
  • 10/21 【C#】寸法線の描画
  • 10/21 【C#】GraphicsPathの領域取得
  • 10/20 【C#】GraphicsPathの描画
  • 10/18 【C#】GraphicsPath
  • 10/17 【C#】Bitmap画像データの拡大縮小
  • 10/15 【C#】画像の座標系
  • 10/14 【C#】画像の上下左右反転、90,180,270度回転
  • 10/3 【C#】SplitContainerのPanel固定方法
  • 9/7 【Neural Network Console】学習データの出力方法
  • 9/3 Deep Learning向け学習画像撮り込みソフト公開
  • 9/1 【Neural Network Console】新規画像のDataset作成方法
  • 8/28 【Neural Network Console】GUI表示スケールの変更
  • 8/22 【Neural Network Console】CPU/GPU処理の設定切替
  • 8/21 【Neural Network Console】Learning Rate(学習率)の設定
  • 8/20 ソニーの無償AIソフト Neural Network Consoleの入手ダウンロード、インストール
  • 8/20 Deep Learning
  • 8/20
  • 8/19 古いバージョンのVisual Studio Community/Expressの入手ダウンロード
  • 8/19 CUDAの入手、ダウンロード、インストール方法
  • 8/17 【C#.NET】マイクロソフト仕様のアフィン変換
  • 8/5 【C#】ファイルを開くダイアログボックスの表示
  • 8/2 キャノンプリンターのCDトレイはどこ?!
  • 7/6 【参考書籍】画像処理・機械学習プログラミング OpenCV 3対応
  • 6/20 【Python,matplotlib】動くグラフをAnimationGifに保存する方法
  • 6/17 シグモイド関数の微分
  • 6/15 シグモイド関数
  • 6/13 合成関数の微分
  • 6/12 WordPressで数式エディタ風に数式を入力したい
  • 6/11 PythonをVisual Studioでインストールする方法
  • 6/9 【Python】OpenCVをAnacondaでインストール(Windows編)
  • 6/6 【Python】Anacondaで複数バージョンの環境切り替え
  • 6/6 画像センシング展2017に出展します。
  • 6/1 【Office365】Web版Outlookのフォントサイズ変更
  • 6/1 【Anaconda】モジュールのアップデートでエラー発生
  • 6/1 【Anaconda】コマンドリストの表示
  • 5/29 Windows10パソコン購入
  • 5/24 Anacondaのアンインストール
  • 5/24 【Jupyter Notebook】新規プログラムの作成
  • 5/23 【Python】開発環境の構築
  • 5/23 Pythonはじめました
  • 4/6 【Office365】Web版Outlookのスレッド表示を解除する方法
  • 4/5 【Excel】フーリエ解析(FFT)
  • 3/20 Canny edge detection
  • 3/20 【Excel2016】分析ツールの表示
  • 3/5 【Visual Studio】黒い背景色を白に変更する方法
  • 2/8 【Windows10】拡張モニタに表示されたウィンドウを元に戻す
  • 2/7 複素数の計算
  • 1/18 【Excel】棒グラフの横軸の目盛を0始まりにする
  • 1/16 【Excel】フーリエ変換
  • 1/6 【OpenCV】疑似カラー(カラーマップ)

  • 最近、OpenCVOpenGLDirectShowなどのライブラリを使う機会が増えてきたので、ライブラリの使い方をまとめておきます。

    ライブラリと一言いっても、スタティックライブラリダイナミックライブラリ.NETのクラスライブラリなどとあるのですが、比較的一般的?なダイナミックライブラリの使用方法を紹介します。

    ダイナミックライブラリを使用するには、下記の3点セットが必要となります。

    • ダイナミックリンクライブラリファイル(*.dll)
    • ライブラリファイル(*.lib)
    • ヘッダファイル(インクルードファイル)(*.h)

    各ライブラリで何のファイルが必要かは調べて置いて下さい。
    *.dllファイルはプログラムの実行時、*.lib、*.hファイルはプログラミング中に必要となります。
    また、ライブラリのバージョン、Release用/Debug用とでファイルが異なる場合もあります。

    ライブラリを使用するための設定方法もいくつかあるので、私の思う一般的な方法は以下の通りです。


    ダイナミックライブラリファイル(*.dll)の参照設定方法(環境変数Pathの設定)

    ライブラリをインストールし、*.dllファイルがインストールされたパスを環境変数のPathに設定します。
    ※このPathの設定はライブラリのインストーラにより自動的に設定される場合もあります。

    設定方法は、スタートメニューから、コンピュータを右クリックし、プロパティを選択します。

    ライブラリの使用方法

    次に表示されたウィンドウのシステムの詳細設定をクリック

    ライブラリの使用方法

    詳細設定のタブを選択し、右下の環境変数のボタンをクリック

    ライブラリの使用方法

    すると下図のように××のユーザー環境変数システム環境変数と2種類表示され、両方ともにPathの項目があるのですが、××のユーザー環境変数のPathを設定するとWindowsにログインしたときのユーザーのみでPathの設定が有効となり、システム環境変数のPathを設定すると全ユーザーでPathの設定が有効となります。
    私は『ログインしたユーザーを変えるとプログラムが起動しないんだけど?!』とか言われたく無いので、システム環境変数のPathを設定 するようにしています。
    そして、Pathの項目を選択し、編集ボタンをクリックします。

    ライブラリの使用方法

    そして、編集値の欄に*.dllファイルがインストールされているパス(フォルダ名のフルパス)をセミコロン(;)に続けて記載します。

    (例)
    ;C:\Program Files\OpenCV\bin


    ライブラリの使用方法

    また、この*.dllファイルのパスは必ずしも設定する必要はなく、プログラム(*.exe)のある同一フォルダやC:\Windows\System32フォルダ内に*.dllファイルを入れておくだけでも大丈夫なのですが、プログラムから*.dllファイルを参照するときの優先順位は下記のようになっています。

    1. アプリケーション(*.exe)と同じフォルダ
    2. カレントディレクトリ
    3. システムディレクトリ(C:\Windows\System32 など)
    4. 16Bitシステムディレクトリ(C:\Windows\System など)
    5. Windowsディレクトリ(C:\Windows など)
    6. PATH環境変数に列挙されているディレクトリ


    ライブラリファイル(*.lib)の参照設定方法

    各ライブラリにおいて、どの*.libファイルが必要なのかは調べておき、それぞれのファイルの参照設定を行います。

    まずは、*.libファイルが入っているパスの参照設定を行います。
    メニューのプロジェクト(プロジェクト名)のプロパティをクリックします。

    ライブラリの使用方法

    開いたウィンドウの構成のプロパティ→リンカ→全般を選択し、追加のライブラリディレクトリにそのまま、*.libファイルのあるパスを設定するか、右側にある・・・のボタンをクリックします。

    ライブラリの使用方法

    すると追加のライブラリディレクトリのウィンドウが表示されるので、・・・のボタンをクリックし、フォルダのボタンをクリックして*.libファイルのあるフォルダを指定します。

    ライブラリの使用方法

    ライブラリによっては、参照する順番を指定しなければならない物もあるので、その場合は右上にある ↓ ↑ ボタンで順番を入れ替えます。

    次に実際に使用する*.libファイルを設定します。
    構成のプロパティ→リンカ→入力の追加の依存ファイルの部分に*.libファイルを入力します。
    必要な*.libファイルがある場合は、空白(スペース)で区切って入力します。

    ライブラリの使用法

    他にもプログラム中で*.libファイルを直接していする事もできます。

    例)
    #pragma comment(lib,”C:\\Program Files\\OpenCV\\lib\\cv.lib”)


    インクルードファイル(*.h)の参照設定方法

    インクルードファイル(ヘッダファイル)(*.h)のあるパスを設定します。
    設定方法は
    メニューのプロジェクト→(プロジェクト名)のプロパティを クリックします。

    構成プロパティ→C/C++→全般の追加のインクルードディレクトリの欄の右側にある・・・ボタンをクリックします。

    ライブラリの使用方法

    ヘッダファイルのパスを追加設定するには右上のフォルダのアイコンをクリックします。

    ライブラリの使用方法

    ボタンをクリックすると、・・・のボタンをクリックすると、ディレクトリの選択のウィンドウが表示されるので、*.hファイルが入っているパスを設定します。

    ライブラリの使用方法

    そして、プログラム中では

    #include <cv.h>

    のように設定します。

    C++/CLIからライブラリを使用する場合

    .NETで作られたライブラリでは無いライブラリを使う場合は、メニューのプロジェクト→(プロジェクト名)のプロパティを クリック、構成プロパティ→全般の共通言語ランタイムサポートの欄を

    純粋MSIL共通言語ランタイムサポート(/clr:pure)
    から
    共通言語ランタイムサポート(/clr)
    に変更します。

    ライブラリの使用方法

    その他

    *.libファイル、*.hファイルの設定にはDebug用とRelease用の設定がそれぞれありますので、両方設定して下さい。
    DebugとReleaseとで設定するファイル名が異なる場合もあるのでご注意下さい。

    ライブラリの使用方法

    また、メニューのツール→オプションで表示されたウィンドウのプロジェクトおよびソリューション→VC++ディレクトリで、インクルードファイル(*.h)、ライブラリファイル(*.lib)の参照ディレクトリの設定が可能です。(VS2010は非推奨)
    逆に言うと、ここに設定されているフォルダにインクルードファイル(*.h)やライブラリファイル(*.lib)を置いても参照する事が可能です。(個人的にはあまりやりませんが...)

    ライブラリの使用方法

    トラブルシューティング

    • LINK : fatal error LNK1104: ファイル ‘×××.lib’ を開くことができません。
      fatal error C1083: include ファイルを開けません。’cv.h’: No such file or directory
      *.libファイル、*.hファイルが指定したフォルダに存在しているか?
      また、*.libファイル、*.hのファイル名が正しいか?
      確認してみて下さい。
    • fatal error C1189: #error :  ERROR: EMM intrinsics not supported in the pure mode!
      共通言語ランタイムサポートの設定/clr:pureから/clrに変更して下さい。

    Visual Studioへ戻る

    コメント