🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

dlib

dlibは、機械学習のC++の画像処理ライブラリの一つ。性能の高い顔の器官検出が簡単にでき、Pythonバインドもあります。オープンソースで無料で使用でき、機械学習以外の様々な機能も搭載されています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

3933閲覧

Windows上でCMAKEを用いたDlibのインストール方法

Izayoi-san

総合スコア12

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

dlib

dlibは、機械学習のC++の画像処理ライブラリの一つ。性能の高い顔の器官検出が簡単にでき、Pythonバインドもあります。オープンソースで無料で使用でき、機械学習以外の様々な機能も搭載されています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/12/27 01:28

今Dlibの顔認識ツールを用いて、C++を使った顔の動作の検出をしようと考えています。
一度Dlibを入れたPCが故障したため別のPCに入れなおそうとしたときに、下記のエラーが発生しました。

Cmake Error: The source directory "C:/dlib-19.21/dlib-19.21/dlib/x64" does not exit.

PCがWindows10で64bitのものであることを確認し、
Cmakeはcmake-3.19.2-win64-x64.msiを用いてインストールし、
コマンドプロンプトでwhere cmakeとwhere cmake-guiと打ち込むとcmakeを
置いているディレクトリが表示されることを確認しているため、問題ないと考えています。

Dlibは下記URLからVer19.21のZIPファイルを解凍しただけの状態です。
http://dlib.net/

実際にdlib下にx64がないことは確認しましたが、DlibのREADMEなどにはx64を作るなどの手順が書かれていないため、
どうすればいいのかわからない状態です。

Dlibのインストール方法に関してご指導ご鞭撻のほどよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2020/12/27 09:42

cmake x64 って実行してませんか? それやると、cmakeはx64というフォルダに対して処理しようとしますので、存在しないとエラーになります
guest

回答1

0

ベストアンサー

下記の環境で、コンパイルできました
Windows 10
cmake 3.19.2
Visual Studio 2017

下記をコマンドプロンプトで実行します (cmake の -G オプションは、使用する Visual Studio のバージョンに合わせる)
cd /d dlibを解凍したフォルダ
mkdir build
cd build
cmake -G "Visual Studio 15 2017 Win64" -T host=x64 ..
cmake --build . --config Release

正常に終了すると、下記ができてるはず
dlibを解凍したフォルダ\build\dlib\Release\dlib19.21.0_release_64bit_msvc*.lib

なお、上記手順例での cmake のオプションは最小限ですが、必要に応じてSSE*とかAVXとかを有効にしてください
参考:Why is dlib slow?

投稿2020/12/27 09:57

編集2020/12/27 10:08
jbpb0

総合スコア7653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Izayoi-san

2020/12/28 00:54

現在cmake-guiを使う形でdlibのインストールまでは完了できたと考えています。 (cmake-guiを用いた設定に関してはこのサイトを参考にしました。 https://qiita.com/strv13570/items/a0542600532deee61391) これによってexamples下に作成したbuildディレクトリにファイルが生成されるところまでは確認しています。 この状態で、解答にも記載していただいているcmake --build . --config Releaseを実行しようとすると下記のメッセージで止まります。 -- Configuring incomplete, errors occurred! See also "C:/dlib-19.21/dlib-19.21/examples/build/CMakeFiles/CMakeOutput.log". See also "C:/dlib-19.21/dlib-19.21/examples/build/CMakeFiles/CMakeError.log". CMake Configure step failed. Build files cannot be regenerated correctly. そのためCMakeError.logを確認すると下記の状態でした。 cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_a4b7e.dir\Debug\" /Fd"cmTC_a4b7e.dir\Debug\vc142.pdb" /Gd /TC /errorReport:queue "C:\dlib-19.21\dlib-19.21\examples\build\CMakeFiles\CMakeTmp\CheckIncludeFile.c" CheckIncludeFile.c C:\dlib-19.21\dlib-19.21\examples\build\CMakeFiles\CMakeTmp\CheckIncludeFile.c(1,10): fatal error C1083: include ファイルを開けません。'pthread.h':No such file or directory [C:\dlib-19.21\dlib-19.21\examples\build\CMakeFiles\CMakeTmp\cmTC_a4b7e.vcxproj] こういったエラーが出ているのですが、cmake --build . --config Releaseの前に何か設定が必要でしょうか?
jbpb0

2020/12/28 01:19

私が書いた手順は、examplesの中ではなくdlibを解凍した直下にbuildフォルダを作った場合の手順です 私が書いた手順の中に、「examples」という文字は無いですよね examplesにbuildフォルダを作ってビルドすると、dlib本体だけじゃなくてexamplesのいろんな.exeもコンパイルして作られるので、かなり時間かかって待たされるため、dlib本体だけをコンパイルする手順を紹介しました dlib本体だけのコンパイルは、やってみたら分かりますがすぐに終わるので、一度私が書いた手順通りにやってみてください
Izayoi-san

2020/12/28 01:35

C:\dlib-19.21\dlib-19.21\build\dlib\Releaseの下にdlib19.21.0_release_64bit_msvc1928.libができました。 ありがとうございました。 ちなみにExamplesで生成しようとしたときのエラーの原因ってわかりますか? ファイルがないと言われたことが少し気になっています
jbpb0

2020/12/28 03:19 編集

examplesの中にbuildフォルダを作る場合の手順は、下記の通りです (cmake の -G オプションは、使用する Visual Studio のバージョンに合わせる) cd /d dlibを解凍したフォルダ cd examples mkdir build cd build cmake -G "Visual Studio 15 2017 Win64" -T host=x64 .. cmake --build . --config Release もしexamplesの中にbuildフォルダが既にあるなら、前にそこでcmakeを実行した時の設定が残っていて、それが原因でうまくいかないかもしれないので、予めbuildフォルダを削除してから、上記を行ってください 正常に終了すると、下記ができてるはず (何で「dlib_build」なの??) dlibを解凍したフォルダ\examples\build\dlib_build\Release\dlib19.21.0_release_64bit_msvc*.lib ただし、かなり時間がかかります PCのスペックにもよりますが、私のPCでは30分くらいかかりました
jbpb0

2020/12/28 02:43 編集

回答の最後にも書きましたが「cmake -G...」には、必要なオプションがあれば付けてください これは、buildフォルダをどこに作るかに関わらず、必要ならばやってください たとえば、AVXを有効にするには、下記のようにします (「=1」を付け忘れると、怒られます) cmake -G "Visual Studio 15 2017 Win64" -T host=x64 -DUSE_AVX_INSTRUCTIONS=1 .. ただし、「cmake -G...」をやり直す場合は、毎回buildフォルダを削除して、buildフォルダを作るところからやり直してください そうしないと、前にcmakeを実行した時の設定が残っていて、新たに追加したオプションが反映されません また、SSE*とかAVXとかは、何を付けられるのかは、PCのCPUの種類によって変わります 今時のCPUは、ほとんどがAVXをサポートしてるとは思いますが https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0SIMD%E6%8B%A1%E5%BC%B5%E5%91%BD%E4%BB%A4#%E6%AD%B4%E5%8F%B2
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問