初めてmakeした話

チノちゃんがコーヒー淹れてくれるらしい。導入してみたい。

でも、業界7年Java一筋、makeどころかgccコマンドを叩いたことがないので何やっていいかわからない。

とりあえずgit cloneして、readmeを読む。

$ git clone -b pyonpyon https://github.com/sgymtic/sl.git

適当にmakeして適当にパスの通った場所へぶち込んでください。

なるほど。

$ make
bash: make : コマンドが見つかりません

ふむ。

$ pacman -S make
(略)

$ pacman -S gcc
(略)

$ make
gcc -O  -o pyonpyon sl.c -lncurses
sl.c:41:20: 致命的エラー: curses.h: No such file or directory
 #include <curses.h>
                    ^
コンパイルを停止しました。
Makefile:13: ターゲット 'sl' のレシピで失敗しました
make: *** [sl] エラー 1

どうやら、curses.hが見えないっぽい。

確かに/usr/include/にそれっぽいのがいないので、追加で入れる。

$ pacman -S ncurses-devel ncurses
(略)

ちなみにDebian系だとこんなパッケージぽい。

$ apt-get install libncurses5-dev
(略)

で再挑戦。

$ make
gcc -O  -o pyonpyon sl.c -lncurses
sl.c:41:20: 致命的エラー: curses.h: No such file or directory
 #include <curses.h>
                    ^
コンパイルを停止しました。
Makefile:13: ターゲット 'sl' のレシピで失敗しました
make: *** [sl] エラー 1

えぇ・・・(困惑)

下記によれば、どうやら参照できてないっぽい。

d.hatena.ne.jp

curses.hが/usr/include/ncursesの中に入っているせいで、sl.cからの参照がうまくいってないらしい。

ので、-Iオプションをつけた。

-Iを付けてディレクトリを指定する。

$ make
gcc -O  -I/usr/include/ncurses -o pyonpyon sl.c -lncurses

$ ls
LICENSE  Makefile  pyonpyon.exe  README.md  sl.c  sl.h

お、できてる。
……exeでいいんだっけ?

$ cp pyonpyon.exe /usr/bin

$ pyonpyon



                                      (@@)))()@ O @ O  @
                                     (   )
                                     (@@@@)
                                      (    )

                                        (@@@)

                                         A___A_
                                        /  . . \
                                       |  " ~ " |
                                       _\______/_
                                      /          \
                                     /   \/     \/\
                                    |    /\/v\/v/\|
                                    l ( |  O   OQ||
                                    |   \\ " _ (|==)
                                    |  ||\_o---(~-~)
                                     \~l~|   :  VvV
------------------------------------------------[ ]-------------------------------------







動いてるっぽいからいいか!