C/C++のソースコードを生成するツール

ソースをささっと書きたい、でも後で使うときに備えてそれなりの体裁に整えておきたい。そんなニーズを満たすべく、ソースコードを吐き出すツールを作っています。

https://github.com/vottie/codegen

使い方ですが、codegen.sh cって打つと、以下のような形でプロジェクト名とファイル名を入れてくださいって表示されます。

codegen % codegen.sh c

USAGE:

        codegen.sh c project_name file_name

codegen %

hello world的なものをやりたいなぁですと、

codegen % codegen.sh hello hello

これでhelloってディレクトリができます。その中に入って見ると、以下のファイルが出来上がっているはずです。

% ls
Makefile hello.c  hello.h  main.c
%
hello % cat main.c
#include <stdio.h>
#include "hello.h"

int main(int argc, char **args) {
    return 0;
}
hello % cat hello.c
#include <stdio.h>
#include "hello.h"

int execute() {
    return 0;
}
hello % cat hello.h
#ifndef HELLO_H_
#define HELLO_H_
/**
 *
 */
int execute();
#endif // HELLO_H_
hello % cat Makefile
CXX=gcc
CXXFLAGS= -O0 -Wall -g
LDFLAGS=
TARGET=main

OPT=
INC=
LIB=

SRC=$(shell ls *.c)
HEAD=$(shell ls *.h)
OBJ=$(SRC:. c=.o)

all: $(TARGET)

$(TARGET): $(OBJ)
        $(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJ) $(LIB)

clean:
        $(RM) $(TARGET) *.o

私はMakefileを書くのは苦手です。コピペして作れば良いとは思うんですけど、さくっと書いて動かしたい時に、ニーズにあったMakefileを探すのが面倒だったり。ですので、Makefileを自動生成するツールを作ってみました。

上記のソースについては、execute()の中身を実装してmain.c側で呼び出してあげるように実装し、makeを実行すれば、mainという実行ファイルができると思います。

シン・エヴァンゲリオン劇場版をみました

ラゾーナ川崎にあるTOHOシネマズ川崎で、シン・エヴァンゲリオン劇場版をみてきました。

そんなに熱狂的に好きって訳ではないんですが、受験が終わったこどもに「序破Qぐらい見とかないとオタクとは言えない」とか言って一緒にアマゾンプライムでみたら、何故か映画を一緒に見に行く流れに。。。「もうすぐ高校生なんだから友達といけよ」とも思いつつ、一緒に映画に行くなんて、ゴーバスターズ以来かなぁなんて思いつつ、まんざらでもない感じで行ってきました。

エヴァンゲリオンは友達が好きでした。30代の時に交通事故で亡くなった高校時代の部活の仲間なんですけど、あまり自分の事は語るタイプじゃなかったので、亡くなった後にその事を知りました。彼の葬儀に出てお焼香をあげ、彼の顔を最後に見た時に、「〇ちゃんの分も自分がしっかり人生を楽しんで死ぬ!!」って思いました。今回の劇場版をみて、その時の気持ちを再確認することができたので、良かったです。なんか我慢したり、バランスを取ったり消耗することが多いので、しっかり自分の人生を楽しみたいと思いました。

ですので、どうせ見るならミーハーな気持ちに嘘はつかず、IMAXシアターです。画面はでかく、音も良いんでしょう。細かいことは良いんです。みんなが良いって言ってるんだから、良いんですよ多分。少なくとも自分はそれで満足です。

映画の内容については、多分庵野監督の心情の変化なんですかね。シンジくんのお父さんの目線での語りが多かったのが印象的でした。そりゃ親の視点にもなりますよね。私も人の親となりだいぶ経ちましたので、そのあたりがとても楽しめました。

WSL2とかdocker for windowsとか面倒臭くなった

windows上でlinuxを立ち上げるのは簡単になった。

しかし、実際WSL2上で作業してたらgit cloneがなぜだか失敗するだとか、docker側であけたportが、Nortonのファイアーウォールのせいか見えないだとか、本筋に至るまでのトラブルが多く、嫌になったのでデュアルブートでUbuntu 20.04を立ち上げるようにしました。ブートローダーが動くので家族からは不評。でも最近のパソコンは起動/停止が速いので、Linuxに立ち上げ直すのも全然苦じゃないです。

書くのがおっくう

プラグインをいろいろ入れてるせいか、何か書こうと思うと入力項目が多すぎて書くのがおっくう。
特にスマホからだと苦痛。。。
ムダは省いて気軽にログを残せるようにしたいと思います。

サーバーのOSをアップデート

ubuntuのLTS 18.04が出たので、OS入れ替えたのが約1ヶ月前。
blog動かして、データも復元したのがつい最近。

本当にやる事が遅くて、このペースだと死ぬまであっという間な気がする。
死ぬる時には、何かをやりきった気になりたい。

成田山新勝寺とうなぎ

成田山新勝寺に行って、うなぎを食べた。

うなぎ屋さんが軒を連ねる中、事前にみてて美味しそうだったし、その場で調理しているのも面白かったので、川豊に行った。

IMG_3839うな重

嫁様とこどもは骨が気になると行ってたが、自分は全く気にならずおいしくいただきました。

漬物は頼まなくても奈良漬が出るものだと思ってたのだが、出てきたのは別の漬物だった。あれは失敗だった。

新勝寺はあまり時間がなくて見れなかったが、バリアフリーなつくりでベビーカー持ちにはありがたかった。
その後空港に行って飛行機をみた。
家を出たのが遅かったせいで、いろいろスケジュールが押してて空港についたのは夕方。
当日は割と涼しくて、離着陸を数機みて帰った。

川豊 本店うなぎ / 成田駅京成成田駅

磐田-川崎F

昨日見た。

スコアは5-2で磐田の勝利!

等々力で磐田が勝ったのを見たのは2008年から住んでて初めてだと思う。

ひどい雨の中、見に行った甲斐がありました。

黒色のイエティ

長男にディスられた。

毛が濃いから黒色のイエティだそうだ。

最初は何言ってるのか分からなかったが、分かったら、ジワジワきた。

こどもに日記を書かせておいて

自分が書かない書かないのは悪いなーと思い。

今日はビビンバを食べるときに、賞味期限切れのコチュジャンを入れて食べた。
すると案の定、お腹を下した。
あやうくお風呂でもらすところだった。

そんな時に限って子供が風呂から出てくれない…
本当にピンチだった。