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という実行ファイルができると思います。

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

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

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

書くのがおっくう

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

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

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

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