cmake ( here )を使用して dlib をコンパイルする手順に従うと、静的 dlib ライブラリが生成されます。
cd examples
mkdir build
cd build
cmake ..
cmake --build . --config Release
代わりに共有 (.so) ライブラリを生成するように cmake に指示するにはどうすればよいですか?
cmake ( here )を使用して dlib をコンパイルする手順に従うと、静的 dlib ライブラリが生成されます。
cd examples
mkdir build
cd build
cmake ..
cmake --build . --config Release
代わりに共有 (.so) ライブラリを生成するように cmake に指示するにはどうすればよいですか?
.so ファイルを作成する場合は、次のようにします。
cd dclib/dlib
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=1 ..
make
sudo make install
UNIX システムでは、dlib システム全体がインストールされます。これは、.so ファイルとヘッダー ファイルをインストールして、.so のようなコマンドでプログラムをコンパイルできるようにすることを意味しますg++ main.cpp -ldlib
。sudo ldconfig
最後に、Linux システムでは、新しい共有ライブラリをインストールした後にも実行する必要があります。
ただし、ほとんどのユーザーには、例に示されているように CMake を使用することをお勧めします。そうすれば、必要なときにいつでもデバッグ モードを有効または無効にすることができ、ソース形式とコンパイル済み形式の両方でプロジェクトを簡単に配布できます。たとえば、Windows でコンパイルしたい場合、共有ライブラリは間違いなく適していません。さらに、例に示されているように CMake を使用すると、セットアップなしで常に簡単に機能します。
によるとdlib/CMakeLists.txt
、 のスタンドアロン ( からではないexamples
) のビルドでは、dlib
という名前の共有ライブラリも作成されます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)
...