LoginSignup
4
5

More than 5 years have passed since last update.

Cのコンパイルをちょっとだけ簡単にする

Last updated at Posted at 2015-07-07

Cのコンパイル

gccがあれば簡単にできますね。

コンパイル
$ gcc hoge.c -o hoge

恐らく、元のfile.cから、拡張子.cを抜いたものをコンパイル後のファイル名とするかと思います。

もう形式は決まっているんですよね。
ファイル名を変えることも全然有りですが、コンパイル後のファイル名とか変えても分かりづらいだけですし、そんな事わざわざしませんよね。


じゃあわざわざ gcc hoge.c -o hoge なんて書くのめんどくさくね?

コマンド一発でコンパイルしようぜ

なので、コマンド一発でコンパイルできるようにします。
コマンドがなければ作ればいいじゃない。
いじくるのは、ホームディレクトリにある ~/.bash_profile か、もしくは /etc/profile.d の配下にシェルスクリプトを作ります。
これはサーバの1ユーザとして使うか、全ユーザが使えるようにするかによって変わってくるかと思います。

1ユーザとして使う場合は、下記を ~/.bash_profile に追記します。
全ユーザが使えるようにするには、 /etc/profile.d 配下に適当に compile.sh でも作ってそこに下記を入力してください。

compile(){
    out=`echo $1 | awk -F '.' '{print $1}'`
    gcc $1 -o ${out}
}

一応説明しておきます。
$1 は引数です。元になるCのファイルですね。
それを awk に掛けます。
区切り文字の認識を .(ドット) にし、一つ目のフィールドを抜き出しています。
ファイル名が hoge.c だとしたら、フィールドの一つ目が hoge で、二つ目が c になります。
抜き出した hoge を変数 out に入れます。
その後に gcc コマンドで、元の引数 hoge.c を、先ほど抜き出した hoge で出力しています。

入力したら下記を実行してください。

$ source /etc/profile

これで、 compile という名の自作コマンドが使えます。

$ com       ←[Tab]キーを2度押す
combinedeltarpm      command              compile              complete-ant-cmd.pl
comm                 compgen              complete             compopt

compile が候補として出てくるのが確認できます。

あとはこれでコンパイルするだけです。

$ ls
test.c
$ compile test.c
$ ls
test  test.c

これだけです。
因みに私はgccコマンドをよく知りません。
「gccだけでできるよ?」とか「こういうコマンドあるよ?」いうことがあれば教えて下さい・・・。

4
5
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
4
5