9

cmake ( here )を使用して dlib をコンパイルする手順に従うと、静的 dlib ライブラリが生成されます。

cd examples
mkdir build
cd build
cmake ..
cmake --build . --config Release

代わりに共有 (.so) ライブラリを生成するように cmake に指示するにはどうすればよいですか?

4

2 に答える 2

23

.so ファイルを作成する場合は、次のようにします。

cd dclib/dlib
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=1 ..
make
sudo make install

UNIX システムでは、dlib システム全体がインストールされます。これは、.so ファイルとヘッダー ファイルをインストールして、.so のようなコマンドでプログラムをコンパイルできるようにすることを意味しますg++ main.cpp -ldlibsudo ldconfig最後に、Linux システムでは、新しい共有ライブラリをインストールした後にも実行する必要があります。

ただし、ほとんどのユーザーには、例に示されているように CMake を使用することをお勧めします。そうすれば、必要なときにいつでもデバッグ モードを有効または無効にすることができ、ソース形式とコンパイル済み形式の両方でプロジェクトを簡単に配布できます。たとえば、Windows でコンパイルしたい場合、共有ライブラリは間違いなく適していません。さらに、例に示されているように CMake を使用すると、セットアップなしで常に簡単に機能します。

于 2015-11-30T11:42:33.420 に答える
0

によると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)
...
于 2015-11-30T11:30:14.607 に答える