From 28944336d496f2f1595c99c50b8cb4c32be26f7e Mon Sep 17 00:00:00 2001 From: Dmitriy Anisimov Date: Fri, 14 Nov 2014 12:32:42 +0300 Subject: [PATCH] updated linux installation documentation --- .../linux_install/linux_install.rst | 123 +++++++++++++----- 1 file changed, 94 insertions(+), 29 deletions(-) diff --git a/doc/tutorials/introduction/linux_install/linux_install.rst b/doc/tutorials/introduction/linux_install/linux_install.rst index 7aeb646bdd..5d1504f48f 100644 --- a/doc/tutorials/introduction/linux_install/linux_install.rst +++ b/doc/tutorials/introduction/linux_install/linux_install.rst @@ -7,16 +7,16 @@ These steps have been tested for Ubuntu 10.04 but should work with other distros Required Packages ================= - * GCC 4.4.x or later - * CMake 2.8.7 or higher - * Git - * GTK+2.x or higher, including headers (libgtk2.0-dev) - * pkg-config - * Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy) - * ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev - * [optional] libtbb2 libtbb-dev - * [optional] libdc1394 2.x - * [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev +* GCC 4.4.x or later +* CMake 2.8.7 or higher +* Git +* GTK+2.x or higher, including headers (libgtk2.0-dev) +* pkg-config +* Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy) +* ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev +* [optional] libtbb2 libtbb-dev +* [optional] libdc1394 2.x +* [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev The packages can be installed using a terminal and the following commands or by using Synaptic Manager: @@ -29,57 +29,122 @@ The packages can be installed using a terminal and the following commands or by Getting OpenCV Source Code ========================== -You can use the latest stable OpenCV version available in *sourceforge* or you can grab the latest snapshot from our `Git repository `_. +You can use the latest stable OpenCV version or you can grab the latest snapshot from our `Git repository `_. Getting the Latest Stable OpenCV Version ---------------------------------------- -* Go to our `page on Sourceforge `_; - -* Download the source tarball and unpack it. +* Go to our `downloads page `_. +* Download the source archive and unpack it. Getting the Cutting-edge OpenCV from the Git Repository ------------------------------------------------------- -Launch Git client and clone `OpenCV repository `_ +Launch Git client and clone `OpenCV repository `_. +If you need modules from `OpenCV contrib repository `_ then clone it too. -In Linux it can be achieved with the following command in Terminal: +For example .. code-block:: bash - cd ~/ + cd ~/ git clone https://github.com/Itseez/opencv.git + git clone https://github.com/Itseez/opencv_contrib.git + +Building OpenCV from Source Using CMake +======================================= + +#. Create a temporary directory, which we denote as , where you want to put the generated Makefiles, project files as well the object files and output binaries and enter there. + + For example + .. code-block:: bash -Building OpenCV from Source Using CMake, Using the Command Line -=============================================================== + cd ~/opencv + mkdir build + cd build -#. Create a temporary directory, which we denote as , where you want to put the generated Makefiles, project files as well the object files and output binaries. +#. Configuring. Run + cmake [] -#. Enter the and type + For example .. code-block:: bash - cmake [] + cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. + + or cmake-gui + + * set full path to OpenCV source code, e.g. /home/user/opencv + * set full path to , e.g. /home/user/opencv/build + * set optional parameters + * run: “Configure” + * run: “Generate” + +#. Description of some parameters + + * build type: CMAKE_BUILD_TYPE=Release\\Debug + * to build with modules from opencv_contrib set OPENCV_EXTRA_MODULES_PATH to + * set BUILD_DOCS for building documents + * set BUILD_EXAMPLES to build all examples + +#. [optional] Building python. Set the following python parameters: + + * PYTHON2(3)_EXECUTABLE = + * PYTHON_INCLUDE_DIR = /usr/include/python + * PYTHON_INCLUDE_DIR2 = /usr/include/x86_64-linux-gnu/python + * PYTHON_LIBRARY = /usr/lib/x86_64-linux-gnu/libpython.so + * PYTHON2(3)_NUMPY_INCLUDE_DIRS = /usr/lib/python/dist-packages/numpy/core/include/ + +#. [optional] Building java. + + * Unset parameter: BUILD_SHARED_LIBS + * It is useful also to unset BUILD_EXAMPLES, BUILD_TESTS, BUILD_PERF_TESTS - as they all will be statically linked with OpenCV and can take a lot of memory. + +#. Build. From build directory execute make, recomend to do it in several threads For example .. code-block:: bash - cd ~/opencv - mkdir release - cd release - cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. + make -j7 # runs 7 jobs in parallel + +#. [optional] Building documents. Enter and run make with target "html_docs" -#. Enter the created temporary directory () and proceed with: + For example + + .. code-block:: bash + + cd ~/opencv/build/doc/ + make -j7 html_docs + +#. To install libraries, from build directory execute .. code-block:: bash - make -j8 # -j8 runs 8 jobs in parallel. - # Change 8 to number of hardware threads available. sudo make install +#. [optional] Running tests + + * Get the required test data from `OpenCV extra repository `_. + + For example + + .. code-block:: bash + + git clone https://github.com/Itseez/opencv_extra.git + + * set OPENCV_TEST_DATA_PATH environment variable to . + + * execute tests from build directory. + + For example + + .. code-block:: bash + + /bin/opencv_test_core + .. note:: If the size of the created library is a critical issue (like in case of an Android build) you can use the ``install/strip`` command to get the smallest size as possible. The *stripped* version appears to be twice as small. However, we do not recommend using this unless those extra megabytes do really matter.