为 dlib 创建一个共享库
Create a shared library for dlib
按照使用cmake编译dlib的说明(here)生成静态dlib库:
cd examples
mkdir build
cd build
cmake ..
cmake --build . --config Release
如何指示 cmake 生成共享 (.so) 库?
根据 dlib/CMakeLists.txt
,dlib
的独立(不是来自 examples
)构建也会创建名为 dlib-shared
:
的共享库
mkdir shared_build # Build directory can be any
cd shared_build
cmake ..
cmake --build . --config Release
make install # Install library for make it acessible for others
要在示例中使用此库,您需要将 dlib
库的定义添加到您的 examples/CMakeLists.txt
before include(../dlib/cmake)
.
examples/CMakeLists.txt:
...
PROJECT(examples)
add_library(dlib SHARED IMPORTED) # Imported(!) dlib target
set_target_properties(dlib PROPERTIES IMPORTED_LOCATION "<full path to the installed dlib-shared library file>")
# Now it is safe to include other dlib infrustucture - it won't build dlib again.
include(../dlib/cmake)
...
如果你想制作一个 .so 文件,那么这样做:
cd dclib/dlib
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=1 ..
make
sudo make install
在 unix 系统上,这将在系统范围内安装 dlib。这意味着安装 .so 文件和头文件,以便您可以使用 g++ main.cpp -ldlib
这样的命令编译程序。最后,在 linux 系统上,您还需要在安装任何新的共享库后 运行 sudo ldconfig
。
但是,对于大多数用户,我建议使用示例中所示的 CMake。这种方式将允许您随时启用或禁用调试模式,并且还可以更轻松地以源代码形式和编译形式分发项目。例如,如果您想在 windows 上编译,那么共享库绝对不是正确的选择。此外,如示例中所示使用 CMake 将始终以直接的方式工作,无需任何设置。
按照使用cmake编译dlib的说明(here)生成静态dlib库:
cd examples
mkdir build
cd build
cmake ..
cmake --build . --config Release
如何指示 cmake 生成共享 (.so) 库?
根据 dlib/CMakeLists.txt
,dlib
的独立(不是来自 examples
)构建也会创建名为 dlib-shared
:
mkdir shared_build # Build directory can be any
cd shared_build
cmake ..
cmake --build . --config Release
make install # Install library for make it acessible for others
要在示例中使用此库,您需要将 dlib
库的定义添加到您的 examples/CMakeLists.txt
before include(../dlib/cmake)
.
examples/CMakeLists.txt:
...
PROJECT(examples)
add_library(dlib SHARED IMPORTED) # Imported(!) dlib target
set_target_properties(dlib PROPERTIES IMPORTED_LOCATION "<full path to the installed dlib-shared library file>")
# Now it is safe to include other dlib infrustucture - it won't build dlib again.
include(../dlib/cmake)
...
如果你想制作一个 .so 文件,那么这样做:
cd dclib/dlib
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=1 ..
make
sudo make install
在 unix 系统上,这将在系统范围内安装 dlib。这意味着安装 .so 文件和头文件,以便您可以使用 g++ main.cpp -ldlib
这样的命令编译程序。最后,在 linux 系统上,您还需要在安装任何新的共享库后 运行 sudo ldconfig
。
但是,对于大多数用户,我建议使用示例中所示的 CMake。这种方式将允许您随时启用或禁用调试模式,并且还可以更轻松地以源代码形式和编译形式分发项目。例如,如果您想在 windows 上编译,那么共享库绝对不是正确的选择。此外,如示例中所示使用 CMake 将始终以直接的方式工作,无需任何设置。