本文讲述的linux系统下如何编译dlib的静态库和动态库方法。
dlib源码下载地址
- dlib官网:dlib C++ Library
- GitHub - davisking/dlib: A toolkit for making real world machine learning and data analysis applications in C++
dlib源码的目录结构如下:
编译方法可以参考README.md文件,该文件中的方法默认情况下的编译的是静态库libdlib.a。编译方法如下如下所示:
进入上图所在目录,打开终端窗口,依次执行下面的命令。
mkdir build
cd build
cmake ..
cmake --build .
上述命令执行完成后,会在build/dlib目录下生成libdlib.a
动态库编译
但是很多时候我们不需要使用静态库,而是期望生成动态库进行使用。那么dlib的动态库如何生成呢?经过调研和实测找到了解决方法,方法如下所示:
mkdir build
cd build
cmake .. -DBUILD_SHARED_LIBS=ON -DDLIB_USE_LAPACK=1 -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1 -DUSE_SSE2_INSTRUCTIONS=1 #cmake变量DBUILD_SHARED_LIBS是一个全局变量,用于控制cmake是否生成动态库.so,另外avx和sse都是可以加速cpu运算的指令集,也有类似的编译选项,编译dlib一般都至少需要打开sse,avx指令集是否支持根据实际情况设置即可。
cmake --build .
sudo make install
上述命令执行完成后,到build/dlib目录下可以看到lidlib.so等文件,在/usr/local/lib目录下也能看到libdlib.so等文件。