0

最近、自分のマシンに Opencv をインストールしました。Pythonでうまく機能しています(たとえば、いくつかのプログラムで確認しました)。しかし、Python のチュートリアルが不足しているため、c に移行することにしました。http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/から Hello world プログラムを実行しました。

コンパイル中に次のエラーが発生しました

hello-world.c:4:16: fatal error: cv.h: No such file or directory
compilation terminated.

私はopencvが初めてです

Qn : 何が問題なのか、また c で helloworld プログラムを実行する方法を教えてください。

4

3 に答える 3

1

cv.h ファイルへのコンパイラ パスを示す必要があります。それを見つける簡単な方法は(Ubuntuで)行うことです:

find /usr -name "cv.h"
/usr/local/include/opencv/cv.h

これをコンパイラに追加するだけです:

gcc -I/usr/local/include/opencv -o helloworld helloworld.c

この質問をすると、コンパイラーがプログラムを opencv ライブラリーにリンクする際にも問題が発生する可能性があります。ライブラリ ファイルに対してのみ同じことを行います。

find /usr -iname "libopencv*"
/usr/local/lib/libopencv_flann.so
...

このフォルダーを同じ方法で追加し、使用するライブラリを指定します。

gcc helloworld.c -I/usr/local/include/opencv -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -o helloworld

おそらくコンパイルされるはずです。実行できるショートカットもあり、そのすべての手順の代わりに次のコマンドを使用するだけです

gcc helloworld.c `pkg-config --cflags --libs opencv` -o helloworld

これにより、必要なファイルを見つけるすべての作業が処理され、楽しいコーディング部分に集中できるようになります。

于 2012-12-27T12:44:44.090 に答える
1

cv.hコンパイラがインクルード ファイルを見つけることができません。パッケージ マネージャーからインストールした場合は、おそらく/usr/include/opencv/. インクルード検索パスを追加する必要があります。コマンド ラインからコンパイルする場合は、-I追加のインクルード ディレクトリを指定するために使用します。それは次のようなものになります-

gcc -I /usr/include/opencv/ -o helloworld helloworld.c 

Eclipse を使用している場合は、

  • プロジェクトを右クリックし、プロパティを選択します。
  • [C/C++ 一般] -> [パスとシンボル] を選択します。
  • [インクルード] タブを選択します。
  • 言語リストで、使用している方に応じて「GNU C」または「GNU C++」を選択します。
  • 「追加...」ボタンを押して、/usr/include/opencv/ を追加します。
  • 保存して再構築します。
于 2012-12-27T05:52:44.750 に答える
0

おそらく、opencv パッケージをインストールしたばかりです。ただし、C プログラムで opencv を使用する場合は、opencv-devel のような名前のパッケージをインストールすることもできます。まだインストールしていない場合は、インストールしてから、@iagreen が言ったように使用してください。ご多幸をお祈り申し上げます。

于 2012-12-27T05:57:51.760 に答える