# dlib C++ library [![GitHub Actions C++ Status](https://github.com/davisking/dlib/actions/workflows/build_cpp.yml/badge.svg)](https://github.com/davisking/dlib/actions/workflows/build_cpp.yml) [![GitHub Actions Python Status](https://github.com/davisking/dlib/actions/workflows/build_python.yml/badge.svg)](https://github.com/davisking/dlib/actions/workflows/build_python.yml) Dlib is a modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real world problems. See [http://dlib.net](http://dlib.net) for the main project documentation and API reference. ## Compiling dlib C++ example programs You need a C++17 compiler and CMake. Go into the examples folder and type: ```bash mkdir build; cd build; cmake .. ; cmake --build . ``` That will build all the examples. If you have a CPU that supports AVX instructions then turn them on like this: ```bash mkdir build; cd build; cmake .. -DUSE_AVX_INSTRUCTIONS=1; cmake --build . ``` Doing so will make some things run faster. Visual Studio users can explicitly select a 64bit target and compiler with a CMake invocation like this: ```bash cmake .. -G "Visual Studio 17 2022" -A x64 -T host=x64 ``` ## Compiling your own C++ programs that use dlib The examples folder has a [CMake tutorial](https://github.com/davisking/dlib/blob/master/examples/CMakeLists.txt) that tells you what to do. There are also additional instructions on the [dlib web site](http://dlib.net/compile.html). Alternatively, if you are using the [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager you can download and install dlib with CMake integration in a single command: ```bash vcpkg install dlib ``` ## Compiling dlib Python API Either fetch the latest stable release of dlib from PyPi and install that: ```bash pip install dlib ``` Or fetch the very latest version from github and install that: ```bash git clone https://github.com/davisking/dlib.git cd dlib pip install . ``` It's possible to change build settings by passing parameters to `setup.py` or `DLIB_*` environment variables. For example, setting the environment variable `DLIB_NO_GUI_SUPPORT` to `ON` will add the cmake option `-DDLIB_NO_GUI_SUPPORT=ON`. ## Running the unit test suite Type the following to compile and run the dlib unit test suite: ```bash cd dlib/test mkdir build cd build cmake .. cmake --build . --config Release ./dtest --runall ``` Note that on windows your compiler might put the test executable in a subfolder called `Release`. If that's the case then you have to go to that folder before running the test. This library is licensed under the Boost Software License, which can be found in [dlib/LICENSE.txt](https://github.com/davisking/dlib/blob/master/dlib/LICENSE.txt). The long and short of the license is that you can use dlib however you like, even in closed source commercial software. ## dlib sponsors This research is based in part upon work supported by the Office of the Director of National Intelligence (ODNI), Intelligence Advanced Research Projects Activity (IARPA) under contract number 2014-14071600010. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of ODNI, IARPA, or the U.S. Government.