13

基本的に、私はopenCVをpython用にうまくインストールできましたが、C ++でもできるようにしたいと思っています。Linuxディストリビューションのパッケージマネージャー(archに基づくmanjaroの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 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 

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

4

4 に答える 4

10

ごめんなさい、皆さん。私自身の答えを見つけました。私にとって、これはコンパイルする正しい方法でした:

  g++ cv.cpp -o cv -I/usr/include/opencv4
于 2019-10-20T23:27:20.377 に答える
0

私はコードブロックを使用しており、これを修正するために /usr/include/opencv4 を /usr/include/opencv2 にコピーしました。そのように怠け者:)

于 2019-11-15T17:57:35.910 に答える