ChromeOSでC言語プログラミング

ChromeOS ( Chromebook, ChromeOS Flex)が、学校を中心に普及している今、プログラミングの原点になるC言語の開発環境を整えてみる。

2022/11/13

## Webでお手軽に開発

追加設定なしでプログラミングするなら、Web上のサービスを利用する。

例えば、Chromeブラウザで次のサイトにアクセス

[paiza.io](https://paiza.io/ja/projects/new)

左上の言語選択を C に変更

※scanfを使っているコードでは、`入力`タブに予め数値や文字列などのデータを入力してから

 `実行`をクリックする。


この方法では、オフラインでのコード開発はできない。

また、このWebサービスが終わってしまうと、使えなくなる。


そこで、オフラインでも開発するには、Linux開発環境をオンにして、gccやgdbをインストールする。


## Linux開発環境をオンに

(参考 https://qiita.com/suzuki_sh/items/adead0fd9adefec112af)

### Chrome OSの設定から

`設定`→`詳細設定`→`デベロッパー`→`linux開発環境`→`オン`にする

オンにして、設定が完了すると、Linuxのターミナルが自動的に起動する。

次回からは、ターミナルを起動し、

Linux penguin

をクリックして開く。

このあと、ターミナルを使って、必要なファイルのアップデートやインストールをする。

### Linux環境のアップデート

sudo apt update

sudo apt upgrade -y

sudo apt autoremove -y

### C言語の開発環境をインストール

sudo apt install build-essential -y

sudo apt install gdb -y

### ターミナルで日本語が入出力できるようにフォントやアプリをインストール

sudo apt install fonts-ipafont fonts-ipaexfont

sudo apt install fcitx-mozc


### 上記設定を自動的に実行するシェルスクリプト

ファイル名 : `setup`

#!/usr/bin/sh

# System Update

sudo apt update

sudo apt upgrade -y

sudo apt autoremove -y

# Compiler / Debugger Install

sudo apt install build-essential -y

sudo apt install gdb -y


# Japanese Input Method

sudo apt install fonts-ipafont fonts-ipaexfont -y

sudo apt install fcitx-mozc -y

実行するには、`Linuxファイル`内に上記スクリプトを`setup`という名前で保存。

その後、ターミナルでスクリプトを実行する。

sh setup


## Fcitxでターミナルで日本語が入力できる設定

### Fcitxを起動

Chromeのアプリケーションシェルフ(左端の◎ボタン)から

`Linuxアプリ`→`Fcitx`をクリック。


### Fcitxの設定

ターミナルに戻って、設定ツールを起動

fcitx-configtool

開いたダイアログボックスで操作する。

最初に設定されている `Keyboard - English (US)` をクリックしてから、

ダイアログボックスの左下にある`-` をクリックして削除する。


ダイアログボックス左下の `+`ボタンをクリック

`Only Show Current Language`のチェックを外す。

Search Input Methodの領域に `Mozc` と入力して検索、

ダイアログボックスの中に現れた`Mozc`をクリックして`OK`をクリックすると、追加される。


### fcitxの自動起動設定

ターミナルから

fcitx-autostart


### 再起動しても日本語入力できるように設定

ターミナルで下記コマンドを実行。

echo "fcitx > /dev/null 2>&1" >> ~/.profile


## Chrome拡張機能`Text`をインストール

Chrome Webストアで入手可能


### Textでソースコード入力

#include <stdio.h>

int main(void)

{

printf("hello world.\n");

return 0;

}


`[Ctrl]+[s]`で保存

ファイル名を`hello.c`とする。


### ターミナル(penguin)からコンパイル

gcc hello.c


### ターミナルで実行

./a.out


### shスクリプトでコンパイル・ビルドと実行

コマンド1つでコンパイル・ビルドと実行を行うスクリプトを使うと、楽になる。

`Text`で、次の内容のファイルを作成し、ソースコードが保存されているのと同じディレクトリに保存する。

ファイル名: `runc`

#!/usr/bin/env sh

gcc $1

if [ $? -eq 0 ]; then

echo "ビルド成功。実行します。\n"

./a.out

echo "\n実行完了\n"

fi

このファイルに次のコマンドで実行権限を与える。ターミナルから実行する。

chmod +x runc

実行は、次のように入力する。

この例では、ファイル名が`hello.c`のときである。

./runc hello.c

次回の実行時には、矢印キーの上方向[↑]を押すと、同じコマンドが表示されるので更に楽になる。


### 実行可能プログラムのファイルを残すとき

ビルドした実行可能プログラムのファイルを残しておきたいときは次のようにする。

この例では、実行ファイル`hello`が生成される。

gcc hello.c -o hello


### 実行可能プログラムを残してコンパイル・ビルド・実行するスクリプト

ファイル名: `runc`

#!/usr/bin/env sh


# 拡張子.cを削除したファイル名を変数fに代入

f=${1%.*}


gcc $f.c -o $f

if [ $? -eq 0 ]; then

echo "ビルド成功。$f 実行します。\n"

./$f

echo "\n実行完了\n"

fi

このファイルに次のコマンドで実行権限を与えてコマンドのようにする。

chmod +x runc

実行は、次のように入力する。

この例では、ファイル名が`hello.c`のときである。

./runc hello.c

次回の実行時には、矢印キーの上方向[↑]を押すと、同じコマンドが表示される。


## Vscodeのインストール

MicrosoftのVisual Studio Code (Vscode)をインストールすると、ソースコードの入力が楽になる上に、実行もVscodeのアイコンをクリックすることでできるので便利


### Vscodeのダウンロードとインストール

[Vscodeのダウンロードサイト](https://code.visualstudio.com/docs/setup/linux)

### .debパッケージをダウンロード

chromebookの`file` → `ダウンロード`

`code-*.deb` ファイルを右クリックして `Linuxインストール`


### 日本語環境にする

拡張機能 (Extensions)から`Japanese Language Pack for VS Code`を検索し`Install`をクリック。


### C言語の拡張機能を入れる

拡張機能 (Extensions)から `C/C++ for Visual Studio Code` を検索し、`Install`をクリック。

拡張機能 (Extensions)から `C/C++ Extension Pack` を検索し、`Install`をクリック。


### Vscodeのlaunchjsonに追加

実行のコマンドで、ビルド・デバッグができるように、Launchjsonを以下のように編集する。

{

"version": "0.2.0",

"configurations": [

{

"MIMode": "gdb",

"miDebuggerPath": "/usr/bin/gdb"

}

]

}