Go to file
Davis King 0ff862aeb7 Changed the windows signaler and mutex code to use the C++11 thread library instead of
the old win32 functions.  I did this to work around how windows unloads dlls.  In particular, during dll unload
windows will kill all threads, THEN it will destruct global objects.  So this leads to problems
where a global obejct that owns threads tries to tell them to shutdown and everything goes wrong.
The specific problem this code change fixes is when signaler::broadcast() is called
on a signaler that was being waited on by one of these abruptly killed threads.  In that case, the old
code would deadlock inside signaler::broadcast().  This new code doesn't seem to have that problem,
thereby mitigating the windows dll unload behavior in some situations.
2017-12-07 08:11:55 -05:00
dlib Changed the windows signaler and mutex code to use the C++11 thread library instead of 2017-12-07 08:11:55 -05:00
docs updated docs 2017-11-06 07:37:29 -05:00
examples Update dnn_mmod_find_cars2_ex.cpp (#966) 2017-11-17 06:38:48 -05:00
python_examples Fixed bug 2017-10-18 10:17:46 -04:00
tools Updated code to work with new regression test output. 2017-11-10 17:42:40 -05:00
.gitignore ignore dist directory as well as egg directories 2015-08-19 16:25:10 -07:00
.hgignore updated ignore file 2017-07-25 15:43:04 -04:00
.hgtags Added tag v19.7 for changeset fb51c77524ff 2017-09-17 08:28:29 -04:00
.travis.yml Try to get travis to give me new boost. 2017-07-11 19:35:56 -04:00
appveyor.yml Don't use parallel builds since it makes appveyor run out of ram. Also 2017-05-14 19:40:10 -04:00
CMakeLists.txt Made top level cmake file not build a shared library if part of a subproject. 2017-10-29 08:42:02 -04:00
ISSUE_TEMPLATE.md Testing to see if github updates 2017-11-18 20:27:27 -05:00
MANIFEST.in Fixed incorrect python manifest 2017-02-21 22:24:04 -05:00
README.md Made it more obvious that users should read the examples/CMakeLists.txt file. 2017-03-24 09:28:35 -04:00
setup.py saving more pypi notes 2017-08-27 20:04:31 -04:00

dlib C++ library Travis Status

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 for the main project documentation and API reference.

Compiling dlib C++ example programs

Go into the examples folder and type:

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:

mkdir build; cd build; cmake .. -DUSE_AVX_INSTRUCTIONS=1; cmake --build .

Doing so will make some things run faster.

Compiling your own C++ programs that use dlib

The examples folder has a CMake tutorial that tells you what to do. There are also additional instructions on the dlib web site.

Compiling dlib Python API

Before you can run the Python example programs you must compile dlib. Type:

python setup.py install

or type

python setup.py install --yes USE_AVX_INSTRUCTIONS

if you have a CPU that supports AVX instructions, since this makes some things run faster. Note that you need to have boost-python installed to compile the Python API.

Running the unit test suite

Type the following to compile and run the dlib unit test suite:

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. 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.