3

パッケージ管理からKubuntu9.10にOpenCVCライブラリをインストールしました。これらのライブラリを使用する小さな画像変更プログラムを作成しましたが、コンパイルしようとするたびにOpenCVライブラリの関数が見つからないというエラーメッセージが表示されるため、コンパイルできません。

これらのヘッダーファイルはフォルダー内にあります/usr/include/opencv/が、それでもコンパイラーは関数が見つからないと言っています。

私はそれらを基本的に含めようとしました

#include <highgui.h>
#include <cv.h>

netbeansのコマンド(およびその特定のディレクトリからヘッダーファイルを検索するようにnetbeansを設定しました)、またそれらをフルパスでインクルードしようとしました。

#include </usr/include/opencv/highgui.h>
#include </usr/include/opencv/cv.h>

また、コンソールでソースファイル(フルパスインクルードを含む)をコンパイルしようとしましたが、これらのライブラリの関数が見つからないという同じエラーメッセージが表示されました。

編集:

私が受け取るエラーメッセージは

undefined reference to 'function_name'

そのopencvライブラリから使用しようとするすべての関数でそのエラーが発生します。

その問題を解決する方法はありますか?


編集II:

他の誰かがnetbeans6.7.1を使用していて同じ問題が発生している場合は、別のWebサイトから貼り付けたソリューションのコピーを次に示します。

ここでは、手動またはパッケージ管理を介してopencvライブラリを正常にインストールしたと想定しています。

  1. Netbeansを開き、次の手順を実行します。[ツール]->[オプション]->[C / C ++]->[コードアシスタンス]->[インクルードディレクトリの追加](私にとっては/ usr / local / include / opencv)を選択します。
  2. 新しいプロジェクトを作成し、次のようにします。[プロジェクト名]->[プロパティ]->[ビルド]->[C / C++コンパイラ]->[ディレクトリを含める]ディレクトリを含める:/ usr / local / include / opencv
  3. [プロジェクト名]->[プロパティ]->[ビルド]->[リンカー]->[ディレクトリを含める]を右クリックします:/ usr / local / include / opencv追加オプション:-I / usr / local / include / opencv -L / usr / local / lib -lcxcore -lcv -lhighgui -lcvaux -lml

次に、プログラムを作成してコンパイルします。

4

2 に答える 2

2

「未定義の参照先」はリンカーエラーです。アプリケーションをOpenCVライブラリにリンクするのを忘れました。必ずcvとhighgui(-lcv -lhighgui)に対してリンクするか、Tobuが提供したpkg-config呼び出しを使用してください。また、より詳細なエラーメッセージのリクエストを2番目にします。

于 2010-01-24T22:07:21.903 に答える
0

OpenCVはpkg-config、UNIX上のライブラリとヘッダーを見つけるための標準的な方法であるを使用します。実行できます(テストされていません):

make CFLAGS="$(pkg-config --cflags --libs opencv)" your-program
于 2010-01-24T21:20:18.183 に答える