1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MinGW(gcc)でDarknetをコンパイルする方法

1
Last updated at Posted at 2020-08-18

Pure C言語でyoloを動かしてみたいと思い、ちょっと苦戦しましたができたので、メモとして残します。

まぁ、Windows&C言語でDarknet-yoloをやりたいって人がどれだけいるか分かりませんが・・・


MinGW編

MinGWとは、ザックリ言えば「Windows版gcc」のこと。

「WindowsでもLinuxと同じようにC言語やC++をコンパイルできるもの」って思ってください。

MinGWのインストール手順

近いうちMinGWのインストール手順は書いてみます。

とりあえずMinGW自体のインストール手順はいっぱいありますが、その中で(個人的に)一番分かりやすかった以下のURLを参照してください。

MinGWでpthreadを使えるようにする

上記のURLに従ってMinGWをインストールしたことを前提に記します。

  • [Windowsキー]を押して、スタートメニュを開き「mingw」と入力して、

000.png

  • 以下の手順を実行
1. 以下のタブを順番にクリック
「All Package」 → 「MinGW」 → 「MinGW Libraries」 → 「MinGW Standard Libraries」

2. 「MinGW Standard Libraries」にある、以下2つのチェックボックスを選択して、
   「Mark for Installation」を実行

001.png

  • チェックを入れたら「Installation」→「Apply Changes」を順番でクリックし、出てきたダイアログの「Apply」を実行

002.png

  • 念のため適当なCプログラムを作成し、#include <pthread.h> を記述してコンパイルが正常にできるか確認
test.c
# include <pthread.h>

int main(void) {
    return 0;
}
PS > gcc test.c
PS > # エラーが出なければOK

MinGW編 終わり


Darknet編

Darknetのダウンロード

gitコマンドを使えるようにしておいてください。

  • pjreddie/darknet より、以下のコマンドでソースコードをダウンロード
PS > git clone https://github.com/pjreddie/darknet.git

WindowsまたはLinux向けのDarknetもあるっぽいですが、今回はノンタッチ。
https://github.com/AlexeyAB/darknet

MinGWでDarknetコンパイル

  • ダウンロードしたdarknet -> examples -> go.cに、#include <winsock2.h>を追加

003.png

  • darknet -> Makefile を以下のように編集。
No. やること
1. LDFLAGS-lws2_32 を追加 004.png
2. mkdirのオプション-pを削除

objbackupresultsの3か所
005.png
  • 最後にdarknetフォルダ下でmingw32-make.exeコマンド(Linuxではmake)を実行。
PS > cd darknet
PS darknet> mingw32-make.exe

色々Warningが出るけど、大丈夫っぽい。

006.png

Darknet編 終わり

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?