要約

gcc コマンドを実行する際、alias(linux)やバッチファイル(Windows)を用いることにより、オプションの入力の手間を省く方法

背景

大学のC言語の授業でソースファイルのコンパイルをする際、オプションをつけることが義務付けられたのだが、毎回入力するとめんどくさい打ち間違いが起こるため、手間を省く方法を考えてみた。

環境

Linux:Ubuntu MATE 16.04
Windows:Windows10

授業にて必須または推奨となっているオプション

-o 実行ファイル名を指定する
-lm 数学関数(sin, sqrt etc.)を用いる場合に必要なオプション
-ansi -pedantic 厳格な ANSI仕様でのコンパイルを行う
-Wall 文法チェックで疑わしい箇所を全て表示する

ソースファイル名がtest.c、実行ファイル名がtest.exeの場合

C:\>gcc test.c -o test.exe -lm -ansi -pedantic -Wall

バッチファイル (Windows)

内容

メモ帳などのテキストエディタで下のバッチファイルを作成する
(バッチファイルのファイル名は任意の名前でよい)

a00_begin_gcc_exe.bat
@echo off

for %%f in (%*) do (
  echo %%f

  if "%%~xf"==".exe" (
    echo --------------------------------

    %%~nxf

    echo --------------------------------

  ) else if "%%~xf"==".c" (
    echo compiling the .c file
    gcc %%~nxf -o %%~nf%filename_exe% -lm -ansi -pedantic -Wall
  )
)

pause

使い方

ソースファイルのコンパイル

ソースファイルをバッチファイルにDrag & Dropする

実行ファイルの実行

実行ファイルをバッチファイルにDrag & Dropする

特徴

  • このバッチファイルがフォルダで一番上に表示されるため、名前を "a00_..." とした
  • 複数ファイルを同時に指定できる
  • ソースファイルと実行ファイルを同時に指定することで、コンパイルと実行を順次に行うことが可能である

alias (Linux)

内容

下の内容を ~/.bashrc に追記し、

~/.bashrc
function gcc2(){
    FILENAME=$(basename $1);
    CFILE=$(basename $1 .c);
    gcc -o $CFILE.out -lm -ansi -pedantic -Wall $FILENAME;
}

alias gcc2=gcc2
$ source ~/.bashrc

を行う

使い方

ソースファイルのコンパイル

$ gcc2 test.c

特徴

  • 複数のソースファイルの指定は不可能である
  • Tabキーを用いたファイル名の補完が可能である

参考文献

『GCCを用いたプログラミング』(大学の授業のハンドアウト)

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.