Skip to content

Instantly share code, notes, and snippets.

@Unbinilium
Last active November 3, 2019 02:41
Show Gist options
  • Save Unbinilium/477017ac3abddfcc571a08c860c04a7e to your computer and use it in GitHub Desktop.
Save Unbinilium/477017ac3abddfcc571a08c860c04a7e to your computer and use it in GitHub Desktop.
Config Qt Creator with OpenCV

Firstly we installed opencv by compiling it form its source and libraries installed in /usr/local/lib. We could show the files in this directory by la /usr/local/lib | grep libopencv then it shows:

libopencv_calib3d.so
libopencv_calib3d.so.4.1
libopencv_calib3d.so.4.1.2
libopencv_core.so
libopencv_core.so.4.1
libopencv_core.so.4.1.2
libopencv_dnn.so
libopencv_dnn.so.4.1
libopencv_dnn.so.4.1.2
libopencv_features2d.so
libopencv_features2d.so.4.1
libopencv_features2d.so.4.1.2
libopencv_flann.so
libopencv_flann.so.4.1
libopencv_flann.so.4.1.2
libopencv_gapi.so
libopencv_gapi.so.4.1
libopencv_gapi.so.4.1.2
libopencv_highgui.so
libopencv_highgui.so.4.1
libopencv_highgui.so.4.1.2
libopencv_imgcodecs.so
libopencv_imgcodecs.so.4.1
libopencv_imgcodecs.so.4.1.2
libopencv_imgproc.so
libopencv_imgproc.so.4.1
libopencv_imgproc.so.4.1.2
libopencv_ml.so
libopencv_ml.so.4.1
libopencv_ml.so.4.1.2
libopencv_objdetect.so
libopencv_objdetect.so.4.1
libopencv_objdetect.so.4.1.2
libopencv_photo.so
libopencv_photo.so.4.1
libopencv_photo.so.4.1.2
libopencv_stitching.so
libopencv_stitching.so.4.1
libopencv_stitching.so.4.1.2
libopencv_videoio.so
libopencv_videoio.so.4.1
libopencv_videoio.so.4.1.2
libopencv_video.so
libopencv_video.so.4.1
libopencv_video.so.4.1.2

Definitely we refer and use libopencv_*.so by default in Qt Creator. Then take a look in /usr/local/include by tree /usr/local/include -d because successfully compiling your code requires the necessarily header file. Command tree could be installed by sudo apt-get install tree -y.

/usr/local/include
└── opencv4
    └── opencv2
        ├── calib3d
        ├── core
        │   ├── cuda
        │   │   └── detail
        │   ├── detail
        │   ├── hal
        │   ├── opencl
        │   │   └── runtime
        │   │       └── autogenerated
        │   └── utils
        ├── dnn
        │   └── utils
        ├── features2d
        │   └── hal
        ├── flann
        ├── gapi
        │   ├── cpu
        │   ├── fluid
        │   ├── gpu
        │   ├── infer
        │   ├── ocl
        │   ├── own
        │   ├── streaming
        │   └── util
        ├── highgui
        ├── imgcodecs
        │   └── legacy
        ├── imgproc
        │   ├── detail
        │   └── hal
        ├── ml
        ├── objdetect
        ├── photo
        │   └── legacy
        ├── stitching
        │   └── detail
        ├── video
        │   └── legacy
        └── videoio
            └── legacy

42 directories

The header files of opencv we used by #include <opencv.hpp> is stored in /usr/local/include/opencv4/opencv2 by tree /usr/local/include/opencv4/opencv2:

/usr/local/include/opencv4/opencv2
├── calib3d
│   ├── calib3d_c.h
│   └── calib3d.hpp
├── calib3d.hpp
├── core
│   ├── affine.hpp
│   ├── async.hpp
│   ├── base.hpp
│   ├── bindings_utils.hpp
│   ├── bufferpool.hpp
│   ├── check.hpp
│   ├── core_c.h
│   ├── core.hpp
│   ├── cuda
│   │   ├── block.hpp
│   │   ├── border_interpolate.hpp
│   │   ├── color.hpp
│   │   ├── common.hpp
│   │   ├── datamov_utils.hpp
│   │   ├── detail
│   │   │   ├── color_detail.hpp
│   │   │   ├── reduce.hpp
│   │   │   ├── reduce_key_val.hpp
│   │   │   ├── transform_detail.hpp
│   │   │   ├── type_traits_detail.hpp
│   │   │   └── vec_distance_detail.hpp
│   │   ├── dynamic_smem.hpp
│   │   ├── emulation.hpp
│   │   ├── filters.hpp
│   │   ├── funcattrib.hpp
│   │   ├── functional.hpp
│   │   ├── limits.hpp
│   │   ├── reduce.hpp
│   │   ├── saturate_cast.hpp
│   │   ├── scan.hpp
│   │   ├── simd_functions.hpp
│   │   ├── transform.hpp
│   │   ├── type_traits.hpp
│   │   ├── utility.hpp
│   │   ├── vec_distance.hpp
│   │   ├── vec_math.hpp
│   │   ├── vec_traits.hpp
│   │   ├── warp.hpp
│   │   ├── warp_reduce.hpp
│   │   └── warp_shuffle.hpp
│   ├── cuda.hpp
│   ├── cuda.inl.hpp
│   ├── cuda_stream_accessor.hpp
│   ├── cuda_types.hpp
│   ├── cv_cpu_dispatch.h
│   ├── cv_cpu_helper.h
│   ├── cvdef.h
│   ├── cvstd.hpp
│   ├── cvstd.inl.hpp
│   ├── cvstd_wrapper.hpp
│   ├── detail
│   │   ├── async_promise.hpp
│   │   └── exception_ptr.hpp
│   ├── directx.hpp
│   ├── eigen.hpp
│   ├── fast_math.hpp
│   ├── hal
│   │   ├── hal.hpp
│   │   ├── interface.h
│   │   ├── intrin_avx512.hpp
│   │   ├── intrin_avx.hpp
│   │   ├── intrin_cpp.hpp
│   │   ├── intrin_forward.hpp
│   │   ├── intrin.hpp
│   │   ├── intrin_msa.hpp
│   │   ├── intrin_neon.hpp
│   │   ├── intrin_sse_em.hpp
│   │   ├── intrin_sse.hpp
│   │   ├── intrin_vsx.hpp
│   │   ├── intrin_wasm.hpp
│   │   └── msa_macros.h
│   ├── mat.hpp
│   ├── mat.inl.hpp
│   ├── matx.hpp
│   ├── neon_utils.hpp
│   ├── ocl_genbase.hpp
│   ├── ocl.hpp
│   ├── opencl
│   │   ├── ocl_defs.hpp
│   │   ├── opencl_info.hpp
│   │   ├── opencl_svm.hpp
│   │   └── runtime
│   │       ├── autogenerated
│   │       │   ├── opencl_clamdblas.hpp
│   │       │   ├── opencl_clamdfft.hpp
│   │       │   ├── opencl_core.hpp
│   │       │   ├── opencl_core_wrappers.hpp
│   │       │   ├── opencl_gl.hpp
│   │       │   └── opencl_gl_wrappers.hpp
│   │       ├── opencl_clamdblas.hpp
│   │       ├── opencl_clamdfft.hpp
│   │       ├── opencl_core.hpp
│   │       ├── opencl_core_wrappers.hpp
│   │       ├── opencl_gl.hpp
│   │       ├── opencl_gl_wrappers.hpp
│   │       ├── opencl_svm_20.hpp
│   │       ├── opencl_svm_definitions.hpp
│   │       └── opencl_svm_hsa_extension.hpp
│   ├── opengl.hpp
│   ├── operations.hpp
│   ├── optim.hpp
│   ├── ovx.hpp
│   ├── persistence.hpp
│   ├── saturate.hpp
│   ├── simd_intrinsics.hpp
│   ├── softfloat.hpp
│   ├── sse_utils.hpp
│   ├── traits.hpp
│   ├── types_c.h
│   ├── types.hpp
│   ├── utility.hpp
│   ├── utils
│   │   ├── allocator_stats.hpp
│   │   ├── allocator_stats.impl.hpp
│   │   ├── filesystem.hpp
│   │   ├── logger.defines.hpp
│   │   ├── logger.hpp
│   │   ├── logtag.hpp
│   │   └── trace.hpp
│   ├── va_intel.hpp
│   ├── version.hpp
│   └── vsx_utils.hpp
├── core.hpp
├── cvconfig.h
├── dnn
│   ├── all_layers.hpp
│   ├── dict.hpp
│   ├── dnn.hpp
│   ├── dnn.inl.hpp
│   ├── layer.details.hpp
│   ├── layer.hpp
│   ├── shape_utils.hpp
│   ├── utils
│   │   └── inference_engine.hpp
│   └── version.hpp
├── dnn.hpp
├── features2d
│   ├── features2d.hpp
│   └── hal
│       └── interface.h
├── features2d.hpp
├── flann
│   ├── all_indices.h
│   ├── allocator.h
│   ├── any.h
│   ├── autotuned_index.h
│   ├── composite_index.h
│   ├── config.h
│   ├── defines.h
│   ├── dist.h
│   ├── dummy.h
│   ├── dynamic_bitset.h
│   ├── flann_base.hpp
│   ├── flann.hpp
│   ├── general.h
│   ├── ground_truth.h
│   ├── hdf5.h
│   ├── heap.h
│   ├── hierarchical_clustering_index.h
│   ├── index_testing.h
│   ├── kdtree_index.h
│   ├── kdtree_single_index.h
│   ├── kmeans_index.h
│   ├── linear_index.h
│   ├── logger.h
│   ├── lsh_index.h
│   ├── lsh_table.h
│   ├── matrix.h
│   ├── miniflann.hpp
│   ├── nn_index.h
│   ├── object_factory.h
│   ├── params.h
│   ├── random.h
│   ├── result_set.h
│   ├── sampling.h
│   ├── saving.h
│   ├── simplex_downhill.h
│   └── timer.h
├── flann.hpp
├── gapi
│   ├── core.hpp
│   ├── cpu
│   │   ├── core.hpp
│   │   ├── gcpukernel.hpp
│   │   └── imgproc.hpp
│   ├── fluid
│   │   ├── core.hpp
│   │   ├── gfluidbuffer.hpp
│   │   ├── gfluidkernel.hpp
│   │   └── imgproc.hpp
│   ├── garg.hpp
│   ├── garray.hpp
│   ├── gasync_context.hpp
│   ├── gcall.hpp
│   ├── gcommon.hpp
│   ├── gcompiled_async.hpp
│   ├── gcompiled.hpp
│   ├── gcompoundkernel.hpp
│   ├── gcomputation_async.hpp
│   ├── gcomputation.hpp
│   ├── gkernel.hpp
│   ├── gmat.hpp
│   ├── gmetaarg.hpp
│   ├── gproto.hpp
│   ├── gpu
│   │   ├── core.hpp
│   │   ├── ggpukernel.hpp
│   │   └── imgproc.hpp
│   ├── gscalar.hpp
│   ├── gstreaming.hpp
│   ├── gtransform.hpp
│   ├── gtyped.hpp
│   ├── gtype_traits.hpp
│   ├── imgproc.hpp
│   ├── infer
│   │   └── ie.hpp
│   ├── infer.hpp
│   ├── ocl
│   │   ├── core.hpp
│   │   ├── goclkernel.hpp
│   │   └── imgproc.hpp
│   ├── opencv_includes.hpp
│   ├── operators.hpp
│   ├── own
│   │   ├── assert.hpp
│   │   ├── convert.hpp
│   │   ├── cvdefs.hpp
│   │   ├── exports.hpp
│   │   ├── mat.hpp
│   │   ├── saturate.hpp
│   │   ├── scalar.hpp
│   │   └── types.hpp
│   ├── streaming
│   │   ├── cap.hpp
│   │   └── source.hpp
│   └── util
│       ├── any.hpp
│       ├── compiler_hints.hpp
│       ├── optional.hpp
│       ├── throw.hpp
│       ├── util.hpp
│       └── variant.hpp
├── gapi.hpp
├── highgui
│   ├── highgui_c.h
│   └── highgui.hpp
├── highgui.hpp
├── imgcodecs
│   ├── imgcodecs_c.h
│   ├── imgcodecs.hpp
│   ├── ios.h
│   └── legacy
│       └── constants_c.h
├── imgcodecs.hpp
├── imgproc
│   ├── detail
│   │   └── gcgraph.hpp
│   ├── hal
│   │   ├── hal.hpp
│   │   └── interface.h
│   ├── imgproc_c.h
│   ├── imgproc.hpp
│   └── types_c.h
├── imgproc.hpp
├── ml
│   ├── ml.hpp
│   └── ml.inl.hpp
├── ml.hpp
├── objdetect
│   ├── detection_based_tracker.hpp
│   └── objdetect.hpp
├── objdetect.hpp
├── opencv.hpp
├── opencv_modules.hpp
├── photo
│   ├── cuda.hpp
│   ├── legacy
│   │   └── constants_c.h
│   └── photo.hpp
├── photo.hpp
├── stitching
│   ├── detail
│   │   ├── autocalib.hpp
│   │   ├── blenders.hpp
│   │   ├── camera.hpp
│   │   ├── exposure_compensate.hpp
│   │   ├── matchers.hpp
│   │   ├── motion_estimators.hpp
│   │   ├── seam_finders.hpp
│   │   ├── timelapsers.hpp
│   │   ├── util.hpp
│   │   ├── util_inl.hpp
│   │   ├── warpers.hpp
│   │   └── warpers_inl.hpp
│   └── warpers.hpp
├── stitching.hpp
├── video
│   ├── background_segm.hpp
│   ├── legacy
│   │   └── constants_c.h
│   ├── tracking.hpp
│   └── video.hpp
├── video.hpp
├── videoio
│   ├── cap_ios.h
│   ├── legacy
│   │   └── constants_c.h
│   ├── registry.hpp
│   ├── videoio_c.h
│   └── videoio.hpp
└── videoio.hpp

40 directories, 276 files

Obviously we could now write the .pro configuration what we want like this, create and save it in you project in Qt Creator.

SOURCES += main.cpp

INCLUDEPATH += /usr/local/include/opencv4 \
               /usr/local/include/opencv4/opencv2

LIBS += /usr/local/lib/libopencv_*.so
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment