Home > Mobile >  Compiling opencv on ubuntu with C version 17
Compiling opencv on ubuntu with C version 17

Time:09-09

I'm trying to add a pnp solver to opencv I'm working on ubuntu OS. first I followed a tutorial on how to install opencv from source by cloning the repositories, then I tested the example and it worked so it compiled and installed succesfully. I began adding my files and I made sure that no names are duplicated and all the files have been added so there were no issues with dependancies. then I ran the cmake again, and ran the make command, but it is giving me the following error:-

opencv/modules/calib3d/src/RansacOptimalNPnP/../NPnP/DualVar.h:71:8: error: ‘optional’ in namespace ‘std’ does not name a template type
   71 |   std::optional<std::tuple<Eigen::Matrix3d, Eigen::Vector3d, double>>

I looked it up online and there is a possibility that I need to use C version 17 but the standard version in opencv is set to 11. what can I change in the opencv cmake list to change that?

CodePudding user response:

You can install OpenCV from ubuntu's opencv package via the following:

for python:

sudo apt-get install python3-opencv

for libopencv-dev:

sudo apt-get install libopencv-dev

If you want to compile it and not use ubuntu's OpenCV package, do the following:

# dependencies
sudo apt-get install cmake
sudo apt-get install gcc g  
# for python2 support
sudo apt-get install python-dev python-numpy
# for python3 support
sudo apt-get install python3-dev python3-numpy
# GTK support
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
# GTK 2 support
sudo apt-get install libgtk2.0-dev
# GTK 3 support
sudo apt-get install libgtk-3-dev
# Optional Dependencies
sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libtiff-dev
sudo apt-get install libwebp-dev

now that you are done with dependencies continue to the actual installation

sudo apt-get install git
git clone https://github.com/opencv/opencv.git
mkdir build
cd build/
cmake ../

if properly configured this is the output

--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.6)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
--     packages path:               lib/python2.7/dist-packages
--
--   Python 3:
--     Interpreter:                 /usr/bin/python3.4 (ver 3.4.3)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
--     numpy:                       /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2)
--     packages path:               lib/python3.4/dist-packages
make
sudo make install

This was shamelessly copied from opencv docs py setup in ubunutu

  • Related