C言語プログラミング環境構築ガイド
ディレクトリ構造の作成
ディレクトリ名は「lesson」と「lecture」のどちらでも問題ないが、授業の資料では「lecture」が使用されているため、統一性を保つために「lecture」を推奨する。
Emacsを使用したファイル編集
Emacsでのファイル作成と編集の詳細手順
Emacsでの詳細な操作手順:
- Emacsが起動し、新しいバッファが表示される
- 以下のコードを入力する:
- ファイルを保存するには:
Ctrl + x
を押した後、Ctrl + s
を押す- 画面下部に「Write file: ~/prog1/lecture01/hello.c」と表示されることを確認する
-
Enter
キーを押して保存する -
Emacsを終了するには:
Ctrl + x
を押した後、Ctrl + c
を押す- 変更を保存していない場合は確認メッセージが表示されるので、
y
を押して保存する
Emacsのショートカットキー(参考)
キー組み合わせ | 機能 |
---|---|
Ctrl + x, Ctrl + s | ファイルを保存する |
Ctrl + x, Ctrl + c | Emacsを終了する |
Ctrl + g | 操作をキャンセルする |
Ctrl + a | 行の先頭に移動する |
Ctrl + e | 行の末尾に移動する |
Ctrl + k | カーソル位置から行末までを削除する |
Ctrl + y | 削除したテキストを貼り付ける |
Ctrl + s | 前方検索を開始する |
Ctrl + r | 後方検索を開始する |
Meta(Alt) + x | コマンドを入力する |
Visual Studio Code (VSCode)を使用したファイル編集
VSCodeでのファイル作成と編集の詳細手順
VSCodeでの詳細な操作手順:
- VSCodeが起動する。左側のエクスプローラーパネルが表示される
- エクスプローラーパネルで右クリックし、「新しいファイル」を選択する
- ファイル名として「hello.c」と入力し、Enterキーを押す
- エディタ領域に以下のコードを入力する:
- ファイルを保存するには:
Ctrl + S
を押す-
または、「ファイル」メニューから「保存」を選択する
-
ファイルを閉じるには:
- ファイルタブの「×」ボタンをクリックする
-
または、
Ctrl + W
を押す -
VSCodeを終了するには:
- 右上の「×」ボタンをクリックする
- または、「ファイル」メニューから「終了」を選択する
VSCodeの便利な機能
- シンタックスハイライト:コードの要素が自動的に色分けされて見やすくなる
- インテリセンス:コード補完機能により、関数や変数名を自動的に提案する
- エラー表示:コードにエラーがある場合、リアルタイムで赤い波線が表示される
- ミニマップ:右側にコードの全体像を表示し、ナビゲーションを容易にする
ターミナルでのコンパイルと実行
基本的なコンパイルと実行手順
詳細なオプションを使用したコンパイル
コンパイルオプションの説明:
- -Wall
:一般的な警告をすべて表示する
- -Wextra
:追加の警告も表示する
- -g
:デバッグ情報を含める(デバッガで使用可能)
- -o hello
:出力ファイル名を「hello」に指定する
コンパイルエラーの確認と修正
コンパイル時にエラーが発生した場合:
# 例:エラーがある場合
gcc hello.c -o hello
# エラーメッセージが表示される
# エディタでファイルを開き直して修正
emacs hello.c # または code hello.c
Emacsを使用したコンパイルと実行
Emacsでのコンパイル手順
- Emacsでファイルを開いている状態で:
Meta(Alt) + x
を押すcompile
と入力してEnter
キーを押す- コンパイルコマンドの入力を求められるので、
gcc -Wall hello.c -o hello
と入力する -
Enter
キーを押してコンパイルを実行する -
コンパイル結果は別のバッファに表示される:
- エラーがある場合は、エラー箇所に移動するために
Ctrl + x
を押してから`
(バッククォート)を押す - 成功した場合は、コンパイルバッファに「Compilation finished」と表示される
Emacsでのプログラム実行手順
- シェルを開く:
Meta(Alt) + x
を押す-
shell
と入力してEnter
キーを押す -
シェルバッファで実行:
./hello
と入力してEnter
キーを押す- プログラムの出力がシェルバッファに表示される
Emacsのコンパイル・実行のカスタマイズ(.emacsファイルの設定)
自動化するために、ホームディレクトリの.emacs
ファイルに以下の設定を追加できる:
;; C言語コンパイル用のキーバインディング
(global-set-key [f9] 'compile)
(setq compile-command "gcc -Wall -g ")
;; コンパイル・実行を連続して行う関数
(defun compile-and-run ()
(interactive)
(let ((src (file-name-nondirectory buffer-file-name))
(exe (file-name-sans-extension (file-name-nondirectory buffer-file-name))))
(compile (concat "gcc -Wall -g " src " -o " exe " && ./" exe))))
;; F5キーにコンパイル・実行の関数をバインド
(global-set-key [f5] 'compile-and-run)
この設定により: - F9キーを押すとコンパイルコマンドが実行される - F5キーを押すとコンパイルと実行が連続して行われる
VSCodeを使用したコンパイルと実行
VSCodeでのコンパイル手順
- ターミナルを開く:
- 上部メニューから「ターミナル」→「新しいターミナル」を選択する
-
または、
Ctrl + `
を押す -
ターミナルでコンパイルコマンドを実行:
-
実行コマンドを入力:
VSCodeのタスク機能を使った自動化
VSCodeでは、タスクを設定することでコンパイルと実行を自動化できる:
- 「Ctrl + Shift + P」を押してコマンドパレットを開く
- 「Tasks: Configure Default Build Task」と入力して選択する
- 「Create tasks.json file from template」を選択する
- 「Others」を選択する
- 表示されるtasks.jsonファイルを以下のように編集する:
{
"version": "2.0.0",
"tasks": [
{
"label": "C: gcc build active file",
"type": "shell",
"command": "gcc",
"args": [
"-Wall",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"]
},
{
"label": "C: run active file",
"type": "shell",
"command": "${fileDirname}/${fileBasenameNoExtension}",
"group": {
"kind": "test",
"isDefault": true
},
"dependsOn": ["C: gcc build active file"]
}
]
}
- ファイルを保存する(Ctrl + S)
これにより: - 「Ctrl + Shift + B」でビルド(コンパイル)タスクが実行される - 「Ctrl + Shift + P」→「Tasks: Run Test Task」で実行タスクが実行される(ビルド後自動的に実行)
VSCodeのデバッグ設定
デバッグ機能を使用するための設定:
- 「Ctrl + Shift + P」を押してコマンドパレットを開く
- 「Debug: Add Configuration」と入力して選択する
- 「C/C++: (gdb) Launch」を選択する
- 表示されるlaunch.jsonファイルは以下のようになっている:
{
"version": "0.2.0",
"configurations": [
{
"name": "C: Debug (GDB)",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C: gcc build active file"
}
]
}
- ファイルを保存する(Ctrl + S)
デバッグの使用方法: - ブレークポイントを設定するには、行番号の左側をクリックする - F5キーを押してデバッグを開始する - F10キーで次の行へ(ステップオーバー) - F11キーでステップイン - F5キーで続行 - Shift + F5キーでデバッグを終了する
課題に取り組む際の推奨ワークフロー
- 授業資料を確認し、課題の要件を理解する
- 適切なディレクトリ(例:
~/prog1/lecture01/
)に移動する - 課題に応じたファイル名でソースファイルを作成する(例:
list0101.c
) - コードを記述する
- コンパイルと実行を繰り返し、デバッグする
- 正常に動作することを確認する
- オンラインジャッジシステムに提出する
注意点
- ファイル名は課題の指示に従って命名する(例:
list0101.c
) - 提出前に不要なコメントやデバッグ用のprintfを削除する
- プログラムが正しく動作することを確認する
- コードには適切なコメントを入れる
- 教科書の例題だけでなく、自分で応用した例も作って理解を深める