BETA

RakeでC言語を自動コンパイル

投稿日:2019-12-02
最終更新:2019-12-02

Rakeについて学習したので、C言語自動コンパイルするタスクを書いた。

Rakeとは?

ruby-makeの略。
毎回やらなきゃいけない決まった作業を自動化してくれるツール。

使い方

まずは$ gem install rakeか、Gemfileに既述して$ bundleでインストールする。

RakefileにRakeを使って自動化したい一連の作業を「タスク」として定義する。

基本は

  • taskでタスクを定義。
  • descでタスクの説明を記述。
  • 依存関係を=>で記述できる。
  • Rakefileの中では、fileutilsライブラリが持ってるメソッドを、組み込み関数のように使うことができる(open等)。

以下サイトが詳しい。
Rake

Rakefileの例↓

desc 'Create hello-rake.txt'  
task :testfile do  
  open('hello-rake.txt', 'w'){|f|  
    f.write('Hello Rake world.')  
  }  
end  

上記は$ rake testfileで実行でき、hello-rake.txtが作成される。

また、タスク一覧は$ rake -Tまたは$ rake -Dで表示できる。
前者は1行で、後者は複数行で表示する。

$ rake -T # 1行で  
rake testfile  # Create hello-rake.txt  

$ rake -D  
rake testfile  
    Create hello-rake.txt  

C言語をコンパイルするタスクを書く

ここから適当に取ってきた↓
オープンソース/C言語サンプルプログラム

今回は「十二支を答える」のC言語プログラムをコンパイルしていこうと思う。
macではgccコマンドでコンパイルができるらしい。
gccコマンドの詳しい説明やコンパイルの仕組みについては以下の記事を参考にどうぞ↓
コンパイラ(gccコマンド)の使い方
コンパイルのしくみ

# frozen_string_literal: true  

CC = 'gcc'  

task default: 'jyuunisi'  

desc 'compile .c file'  
file 'jyuunisi' => 'jyuunisi.c' do  
  sh "#{CC} -o jyuunisi jyuunisi.c"  
end  

fileタスクでファイルが作成できる。
また jyuunisi.c がなければjyuunisiファイルは作成できないように、依存関係を書いてある。

これを$ rakeで実行。
すると、jyuunisiファイルが出来上がる。
あとは、$ ./jyuunisiで実行してみる。

$ ./jyuunisi  

warning: this program uses gets(), which is unsafe.  
あなたは西暦何生まれですか? 1998  

1998年生まれのあなたの十二支は、寅(とら)ですね  

完璧!

タスク自動化は便利

毎回やる作業とかを記述しておけば、かなり時短になりそう
なんかないか探してみる

参考にしたサイト等

Rake
オープンソース/C言語サンプルプログラム
コンパイラ(gccコマンド)の使い方
コンパイルのしくみ

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

BЯunoの技術ブログ。日々学んだことを記録していくよ。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!