プログラミングへの意欲がすっかり無くなってきた君達(俺のこと…
ここいらで基本の基本をやり直ししたいところだ。
ということで gcc による C 言語コンパイルの基本を。
コンパイラやヘッダ類は導入済みという前提で。
Gedit を利用します。
プラグインの「コードスニペット」を有効にします。
プラグインの「外部ツール」を有効にします。
Manage External Tools… を開き以下を登録します。
#!/bin/sh gcc $GEDIT_CURRENT_DOCUMENT_NAME
準備はコレだけです。
test.c という名前で空のファイルを作成し Gedit で開きます。
Inc と打ち込んでキーボードの Tab キーを叩きます、i だけ大文字。
上記のようなテキストが流し込まれたはず。
inc と i を小文字にすると自作ヘッダ用のダブルコーテーションになる。
Delphi(pascal) 屋の人は「それインクリメントじゃないの?」と勘違いしない。
後はお約束の stdio と打ち込み Tab キーで下方にカーソルが移動する。
スタンダード In/Out ヘッダと通ぶらずとも「スタジオえっち」で誰にでも通…(以下略
これで printf 関数が使えるようになる。
Enter キーで一段下げて main と打ち込み再び Tab キー。
main 関数が流し込まれ関数内にカーソルが移動するので printf() を書く。
コンパイルは最初に作成した外部ツールを実行するだけ。
Gedit は実はこんなに凄い!
、、、、、、、、、、
では Gedit の宣伝なので分割コンパイル方法も少し。
extern 宣言を使う方法もあるけど事実上ヘッダを利用する人しかいない。
cbr.h cbr.c という2つのファイルを同一ディレクトリに作成。
cbr.h
#include <stdio.h> void print_cbr(void);
stdio.h をインクルードし、関数プロトタイプのみを書く。
cbr.c
#include "cbr.h" void print_cbr(void) { printf("でも CBR250R 買ってしまったし...\n"); }
cbr.h をインクルードし、プロトタイプの実体を作成する。
test.c も書き換え。
#include "cbr.h" int main (int argc, char *argv[]) { printf("新型 Ninja250 カッケェ!\n"); print_cbr(); return 0; }
stdio.h は cbr.h で宣言されているので書く必要は無い。
プロトタイプがヘッダで宣言されているので print_cbr 関数が使える。
先ほどの外部ツールは残念ながら使えない。
$GEDIT_DOCUMENTS_PATH を使えば複数ファイルのリンクもできるけど *.c のみを全部開いている状態をビルド時に作る必要があるので逆に面倒くさい。
普通に Makefile を作って Ctrl+F8 のほうがいい。
Makefile
ninja: test.c cbr.c gcc -o ninja test.c cbr.c
以上 Gedit はこんなに凄い、ってだからぁ…
すっかり月一更新臭くなっているこのブログ、なんとかせねば。