库与头文件
g++ opencv_cam2.cpp -o opencv_cam2 -I /usr/include/opencv4/ -L /usr/lib/aarch64-linux-gnu/ -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_video -pthread -lz -ldl
- 指定库与头文件的位置
-I /usr/include/opencv4/ -L /usr/lib/aarch64-linux-gnu/
- 指定需要链接的库
-lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_video
如还需要其他链接库,可以查询下
firefly@firefly:~/zack_test_dir/opencv_cam$ ls /usr/lib/aarch64-linux-gnu/libopencv_*.so
/usr/lib/aarch64-linux-gnu/libopencv_aruco.so /usr/lib/aarch64-linux-gnu/libopencv_objdetect.so
/usr/lib/aarch64-linux-gnu/libopencv_bgsegm.so /usr/lib/aarch64-linux-gnu/libopencv_optflow.so
/usr/lib/aarch64-linux-gnu/libopencv_bioinspired.so /usr/lib/aarch64-linux-gnu/libopencv_phase_unwrapping.so
/usr/lib/aarch64-linux-gnu/libopencv_calib3d.so /usr/lib/aarch64-linux-gnu/libopencv_photo.so
/usr/lib/aarch64-linux-gnu/libopencv_ccalib.so /usr/lib/aarch64-linux-gnu/libopencv_plot.so
/usr/lib/aarch64-linux-gnu/libopencv_core.so /usr/lib/aarch64-linux-gnu/libopencv_quality.so
/usr/lib/aarch64-linux-gnu/libopencv_datasets.so /usr/lib/aarch64-linux-gnu/libopencv_reg.so
/usr/lib/aarch64-linux-gnu/libopencv_dnn_objdetect.so /usr/lib/aarch64-linux-gnu/libopencv_rgbd.so
/usr/lib/aarch64-linux-gnu/libopencv_dnn.so /usr/lib/aarch64-linux-gnu/libopencv_saliency.so
/usr/lib/aarch64-linux-gnu/libopencv_dnn_superres.so /usr/lib/aarch64-linux-gnu/libopencv_shape.so
/usr/lib/aarch64-linux-gnu/libopencv_dpm.so /usr/lib/aarch64-linux-gnu/libopencv_stereo.so
/usr/lib/aarch64-linux-gnu/libopencv_face.so /usr/lib/aarch64-linux-gnu/libopencv_stitching.so
/usr/lib/aarch64-linux-gnu/libopencv_features2d.so /usr/lib/aarch64-linux-gnu/libopencv_structured_light.so
/usr/lib/aarch64-linux-gnu/libopencv_flann.so /usr/lib/aarch64-linux-gnu/libopencv_superres.so
/usr/lib/aarch64-linux-gnu/libopencv_freetype.so /usr/lib/aarch64-linux-gnu/libopencv_surface_matching.so
/usr/lib/aarch64-linux-gnu/libopencv_fuzzy.so /usr/lib/aarch64-linux-gnu/libopencv_text.so
/usr/lib/aarch64-linux-gnu/libopencv_hdf.so /usr/lib/aarch64-linux-gnu/libopencv_tracking.so
/usr/lib/aarch64-linux-gnu/libopencv_hfs.so /usr/lib/aarch64-linux-gnu/libopencv_videoio.so
/usr/lib/aarch64-linux-gnu/libopencv_highgui.so /usr/lib/aarch64-linux-gnu/libopencv_video.so
/usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so /usr/lib/aarch64-linux-gnu/libopencv_videostab.so
/usr/lib/aarch64-linux-gnu/libopencv_img_hash.so /usr/lib/aarch64-linux-gnu/libopencv_viz.so
/usr/lib/aarch64-linux-gnu/libopencv_imgproc.so /usr/lib/aarch64-linux-gnu/libopencv_ximgproc.so
/usr/lib/aarch64-linux-gnu/libopencv_line_descriptor.so /usr/lib/aarch64-linux-gnu/libopencv_xobjdetect.so
/usr/lib/aarch64-linux-gnu/libopencv_ml.so /usr/lib/aarch64-linux-gnu/libopencv_xphoto.so
- 头文件宏定义
/usr/include/opencv4/opencv2/opencv.hpp 截取一部分
#ifdef HAVE_OPENCV_SHAPE
#include "opencv2/shape.hpp"
#endif
#ifdef HAVE_OPENCV_STITCHING
#include "opencv2/stitching.hpp"
#endif
#ifdef HAVE_OPENCV_SUPERRES
#include "opencv2/superres.hpp"
#endif
#ifdef HAVE_OPENCV_VIDEO
#include "opencv2/video.hpp"
#endif
#ifdef HAVE_OPENCV_VIDEOIO
#include "opencv2/videoio.hpp"
#endif
#ifdef HAVE_OPENCV_VIDEOSTAB
#include "opencv2/videostab.hpp"
#endif
#ifdef HAVE_OPENCV_VIZ
#include "opencv2/viz.hpp"
#endif
有些头文件是需要定义宏才能使用,所以需要在代码中添加该宏