0

最近 OpenCV (cmake を使用) をインストールしました。たとえば、sample/c から build_all.sh を実行しようとすると、次のエラーが発生します。

compiling fback_c.c
gcc: error: rt: No such file or directory
gcc: error: pthread: No such file or directory
gcc: error: m: No such file or directory
gcc: error: dl: No such file or directory
......................................
compiling find_obj_calonder.cpp
g++: error: rt: No such file or directory
g++: error: pthread: No such file or directory
g++: error: m: No such file or directory
g++: error: dl: No such file or directory

注: それらは他にもありますが、すべてのファイルで同じです。

しかし、sample/cpp のサンプルでこれを使用すると、プログラムは実際にコンパイルされます。

g++ test.cpp -o test -I/usr/local/include/opencv -I/usr/local/include  -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann

また、.py ファイルをコンパイルしようとすると、次のエラーが発生します。

ImportError: No module named cv2

x64 Fedora 19 を使用しています。

そのコマンドを使用するとプログラムがコンパイルされるのに、デフォルトの方法を使用すると機能しない理由を知りたいです。また、 .py をコンパイルするにはどうすればよいですか?

4

2 に答える 2

0

私は Fedora Core に詳しくありません (私が使用していたときはまだ RedHat でした)、多くの最新の Linux ディストリビューションは、通常のシステム ライブラリを /usr/lib に配置し、/usr/include にインクルードします。OpenCV を最初からコンパイルしたので、それを /usr/ local /... に置き、ビルド システムと python はデフォルトでそこを探すように指示されていません。

これが、手動の gcc コマンドが機能した理由です (-I および -L スイッチは、gcc に /usr/local/... を調べるように指示します)。

行ったパッケージのインストールは、配布バージョンを /usr/... にインストールするだけなので、機能している間、実際にはシステムに 2 つの異なるバージョンがあり、サンプルと python は /usr/... にインストールされているバージョンを使用しています。 (パッケージマネージャーから)カスタムインストールではありません。

自分でコンパイルするか、パッケージ マネージャーを使用するかについて全体的な議論をすることもできますが、今のところ、自分でコンパイルすることに決めた場合は、プレフィックスを /usr/local ではなく /usr に設定するか、システムが検索するように設定してください。 /usr/local および /usr.

于 2013-09-26T15:38:11.677 に答える
0

わかりましたので、もう一度試してみました。今回は、Software Install から次のパッケージをインストールしました。

OpenCv ライブラリを使用するための開発用ファイル

アプリの Python 入札

. 彼らの公式の指示では、彼らはこれを述べていません。これで、エラーなしでコンパイルされます。

于 2013-09-26T15:12:42.020 に答える