要約
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を用いたプログラミング』(大学の授業のハンドアウト)