web-dev-qa-db-ja.com

ManjaroにインストールされているOpenCv4用の「致命的なエラー:OpenCv2 / Core.hpp:そのようなファイルまたはディレクトリ」の修正方法

基本的に、pythonにOpenCV Fineをインストールすることができましたが、C++の場合も実行できます。私はそれを私のLinux Distroのパッケージマネージャ(アーチに基づくマンハロのためのPacman)を使ってインストールすることができましたが、OpenCVのテストに努めるために次のプログラムを得ていません。

_#include <iostream>
#include <opencv2/core.hpp>

int main() {
   std::cout << "OpenCV version: " << CV_VERSION << std::endl;
   return 0;
}
_

このプログラムをコンパイルしようとしているエラーは次のとおりです。

_cv.cpp:2:10: fatal error: opencv2/core.hpp: No such file or directory
    2 | #include <opencv2/core.hpp>
      |          ^~~~~~~~~~~~~~~~~~
 compilation terminated.
_

どうやら、これは一般的な誤りですが、私は多くの解決策を試してみましたが、それらはすべてうまくいかないようです。 core.hppがどこにあり、それは実際に/usr/local/include/opencv4/opencv2/core.hppにあるか知っています。ただし、INCLUDEステートメントを変更すると

_ #include opencv4/opencv2/core.hpp
_

次のエラーが発生します

_ In file included from cv.cpp:2:
 /usr/include/opencv4/opencv2/core.hpp:52:10: fatal error: opencv2/core                /cvdef.h: No such file or directory
   52 | #include "opencv2/core/cvdef.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~
 compilation terminated.
_

すべてのヘッダーファイルのパスディレクトリが本質的に間違っていることを示します。次のシンボリックリンクでこれを修正しようとしましたが、それも機能しませんでした。

_$ Sudo ln -s /usr/local/include/opencv4/opencv2/ /usr/local/include/opencv2
_

また、次のようにしてコンパイルしました。

_$ g++ -o cv cv.cpp -I/usr/local/include/opencv4 -Lusr/local/lib -lopencv_core
_

それもうまくいかなかった、そして私に同じエラーを与えました。参考のために、これは私が以前にコンパイルされた方法です。

_$ g++ cv.cpp -o cv
_

これも何も意味するかどうかわからない

_$ pkg-config --libs opencv4
_

以下の結果を教えてください。

_-lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_bgsegm     -lopencv_bioinspired -lopencv_ccalib -lopencv_cvv -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_highgui -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_quality -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_video -lopencv_videoio -lopencv_viz -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core 
_

私はこれが何を意味するのかわかりませんが、これが私を助けてくれるかどうかを知っていません。他の間接解決策はありません。これを修正する方法についてのアイデアは?

2
Notemaster

コードブロックを使用してホットフィックスを使用して、/ usr/include/opencv4から/ usr/opencv2をコピーしました。それほど怠惰な:)

0
Jablondyn

これでコンパイルしてみてください:

FLAGS="$(pkg-config --cflags --libs opencv4)"
g++ cv.cpp -o cv $FLAGS
 _