2
2

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.

Windows環境のmakeでこけた備忘

Last updated at Posted at 2018-02-22

c++で作られたfastTextをWindows環境でコンパイルしようとしたらmakeでこけてはまった話
(fastTextは結果的にあんまり関係ないです。C++コンパイラの話です)

WindowsでC++のソースをコンパイルしたい

c++で作られたfastTextというものを使いたかったのですが、gitにソースしか落ちてなかったのでコンパイルする必要がありました。

そこでGitをインストールしたときになんか入ってた(Git Bash)MinGWを使えばいけるんじゃね?と思い、Windows(Bash on Windows)でfastTextを使うを参考に進めてみました。(Bash on Windowsっつってんだろというツッコミはスルーで)

はまった経緯

とりあえずgitでDLしてmakeするのね、g++いるのねってことがわかりました。

ここでg++のDLにはMinGWを正規ルートでインストールしてパッケージ管理画面からg++を追加してインストールする必要があるらしいのでインストールして追加。
ここでmakeとg++はコマンドがきくようになりました。

ということでfastTextをDLしてコンパイルじゃー!

$ git clone https://github.com/facebookresearch/fastText.git
$ cd fastText
$ make

と思ったらエラーでた。。。。

'thread' is not a member of 'std'

えーなんで???
と思いましたが、どうやらいろいろと調べた結果、MinGWさんはg++をいれてもPthreadが入っていないからできないんだとかなんとか。。むむむ(POSIX のスレッド(pthread)をサポートしてないんだとか)
いろいろ調べてMinGW用のPthreadをDLして配置してみてもうまくいかず、、時間切れでした。

解決策

悔しすぎるので帰ってから家のPC(Win)で再チャレンジすることに。

ここでMinGWを使うのをやめました。
そもそもc++の新しいバージョンに対応してなさそうだったので…。。。ちーん

気を取り直して、Pthreadとかも対応しているCygwinを使うことに。

Cygwinを公式からインストールし、
以下のパッケージ(Devel下)をDLしました(下の方は適当に選んだので不要だったかも)

  • make
  • gcc-g++
  • cygwin32-gcc-core(いらなかった)
  • cygwin32-gcc-g++(いらなかった)
  • mingw64-x86_64-pthreads(いらなかった)
  • mingw64-x86_64-winpthreads(いらなかった)

とりあえずこれでcygwin上でmakeが通ることを確認!!やったー
あー疲れた。。。

(追記)
Cygwin以外にもmsys2でもできるようです。本当はこっちのほうがいいのかも

2
2
10

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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?