[Win/Mac][超初心者向け]C言語の開発環境の初歩の初歩、シンプルな開発環境を作って使う

c-dev-catch

 

シンプルなC言語の開発環境を作ろう!!!!

 

こんにちは。kei(@boot_kt)です。
最近は割りと易し目の案件が多く、プログラミングがつらくないです(笑)

 

この記事はC言語どころかプログラミング以前の、C言語環境の作り方です。
しかも初歩の初歩の初歩の、まだ更に初歩の内容です。

 

って言うか、プログラミングまで行きませんwww
(補助的には書いてますけど説明していません)

C言語の環境を、シンプルに作るだけです。
エディタとコンパイラとコマンドプロンプトだけのシンプルな開発環境です。
特に学習用としてはオススメです。

 

最近はCloud9のように開発環境をすぐに作れるクラウドサービスがあります。
もちろんそれらは便利ですしどんどん活用すべきです。

 

活用するのは良いのですが、

 

自分のマシンに開発環境を作る方法がさっぱりワカラーーーーン!

 

となっちゃってませんか???

 

いやいや、開発環境なんてクラウドですぐに作れるんだし、自分のマシンに作る必要ある????

 

と、あなたは思ってませんか?

 

僕もそう思います(笑)

 

しかしですよ、『できるけどやらない』と『できないのでやらない』のは全っ然違うと思うんですよね。

 

コンパイラ?

インタプリタ?

なんじゃそりゃ?

 

・・・とならないよう、超基礎中の超基礎について知っておいてください。

と言っても、大した事は一切書いてないんですけどね(笑)

 

この記事は、以下の条件に当てはまる方向けの記事です。
もしあなたがこれに当てはまらないなら読んでも無駄かも知れません。

この記事で分かること

  • Windows版のgcc(MinGW)のインストール
  • Mac版のgccのインストール
    ※オマケ程度だけど
  • C言語ができる最小単位の開発環境
  • gccのコンパイル方法の超初歩
  • コンパイル後の実行ファイルの実行方法
この記事の対象者

  • プログラミング経験無し
  • C言語をやってみたい
  • 自分のマシン(Windows/Mac)にC言語の環境を作りたいけどよく分からない
  • Cloud9とかそういう簡単に作れるC言語環境には興味ない
  • コンパイラ?なにそれ?
  • インタプリタ?なにそれ?
  • C言語の開発環境を作る最低限の知識を知りたい
さっさとC言語の環境の作り方を知りたい方へ
結構グダグダと余計な事書いてます。
早くインストール手順を知りたい方は↓をクリックして読んでください

>> 2.コンパイラをインストールする
>> 3.PATHを設定する

用語ついて

  • 『コマンドプロンプト』について
    これはWindowsのコマンドプロンプトのことですが、MacやLinuxの方は『ターミナル』や『端末』に置き換えて読んでください。
  • gcc.exeについて
    Windowsの場合はexeという拡張子が付いていますが、Mac/Linuxでは拡張子が付いていないと思います。
    記事中では『gcc』や『gcc.exe』と表記していますが、実行ファイルのgccと読み替えてください。
  • 『コンパイル』と『コンパイラ』の違い
    • コンパイルとは:
      プログラムのソースコードを機械語(マシン語)に翻訳すること
      要は、プログラムから実行ファイル(Windowsで言えばEXEファイル)を作ること
      『ビルド』と言うこともあります
      厳密にはビルドとコンパイルは違うのですが、同じように使っても問題ありません。
    • コンパイラとは:
      コンパイルしてくれるソフトのこと
      gccが有名
文字コードついて
C言語プログラムのファイルは文字コードに注意してください。
特に日本語を使っている時、文字コードの設定が違っていると文字化けします。
※batやshellを作る際の文字コードも同じにしてください。(←batやshellが分からない方は気にしないで)

Windowsをお使いの方:Shift-JIS(改行コードはCRLF)
Mac/Linuxをお使いの方:UTF-8(改行コードはLF)

最近流行りのエディタ(AtomとかVisual Studio Codeとか)はShift-JISの扱いが面倒ですので、気をつけてください。

 




コンパイラを忘れないで!!!

今はCloud9のようにWebブラウザを使って簡単に開発環境が作れるサービスがありますし、HTMLやJavaScriptなど開発環境を用意しなくてもWebブラウザで実行できるプログラミングが流行っています。

で、、、、

 

♪プログラミング環境作り初心者あるある早く言いたい~~~♪

♪プログラミング環境作り初心者あるある早く言いたい~~~♪

♪プログラミング環境作り初心者あるある早く言いたい~~~♪

 

 

 

♪コンパイラ忘れられガチ~~~♪

 

そうなんです、コンパイラが忘れられガチなんですよ。

 

いや、正確に言うと、忘れられていないでしょう。
でもあなたは今ひとつピンと来ずに流れのままインストールしていませんか?

 

C言語 開発環境 作り方』みたいなワードでググる
 ↓
見つけた記事に書いてある手順通りに進める
 ↓
インストールするソフトやプラグインそれぞれがどんな役割をしているのかよく分からない
 ↓
で、とりあえずインストールする。
 ↓
で、インストールが終わる。
 ↓
で、とりあえず使えるようにはなった。
 ↓
『プラグインをインストールしたけど、アレは何に役立つんだろ?』

 

てな状態のまま、今度は

 

AtomやVisual Studio CodeでもC言語が動くらしい

 

という情報を知る
 ↓
またインストール手順をググる
 ↓
見つける
 ↓
前にやった手順とカブってる部分がある感じするけど、でもよく分からない・・・・
 ↓
プラグインを何個が入れたけど、よくワカラン、静的解析ってなんやねん?

 

みたいな感じになったことありませんか?

 

もしあなたがそう思ったことがあるなら、まずはコンパイラやインタプリタだけをインストールして使ってみましょう

まだプログラミングの事や開発環境周りの事が全くわからないのに、一気にあれやこれやと入れるとワケが分からなくなって当然です。
混乱の元です。

 

まずは手順の全体像を俯瞰しておこう!
C言語の開発環境をインストール〜実行するまでの手順

あなたがC言語の開発環境を作って実行するまでに必要なステップは、わずかこれだけです。
簡単そうでしょ?

  1. C言語の開発環境を作る
    • エディタ
    • コンパイラ
    • PATHの設定
  2. C言語でプログラムを書く
    • エディタを使ってC言語のプログラムを書いて、テキストファイルとして保存する(拡張子はcとかhとか)
  3. コンパイルする
    • コマンドプロンプト(Windowsの場合) or ターミナル(Mac/Linuxの場合)を起動
    • コンパイラを使って、C言語のプログラムを書いたファイルを実行ファイルに変換する
  4. 実行する
    • コマンドプロンプト(Windowsの場合) or ターミナル(Mac/Linuxの場合)で実行ファイルを実行する

↑この全体像はこれ以降の説明で出て来ますので、覚えておいてくださいね。

 

◆全体像の まずはC言語を書いて動かすために必要なもの「だけ」をインストールしましょう

全体像

  1. インストール ←イマココ
  2. C言語でプログラムを書く
  3. コンパイルする
  4. 実行する

開発環境作るのなんてあっちゅーまです。

AtomとかVisual Studio Codeとか静的解析用プラグインとかキーワード色付けプラグインとか、アレコレ一気にインストールするからワケ分からんくなるのです。
C言語の開発環境を作るだけなら、別に難しくないんです!!

 

まずは最小限の環境を作りましょう。

 

最小限の環境の事を知れば、AtomとかVisual Studio CodeとかでC言語を実行させたいと思った時に応用できます。

 

C言語の最小限の開発環境を作る手順はこれです。
最小限と言っても、C言語環境として必要充分なんですよ。
AtomやVisual Studio CodeとかでC言語が使えるは、これを応用しているだけなんです。

  1. エディタをインストール
  2. コンパイラをインストール
  3. コンパイラにPATHを通す設定をする
    PATHについては後ほど説明します。
    「最小限」という意味から言うとPATHを通す設定は必須ではありません。
    嫌ならやらなくてもいいです。
    でもやっておかないと確実に不便ですので、必須って考えてもらっていいです。

3ステップぐらいすぐですよね?

1.エディタをインストール

お好きなエディタを入れてもらえればいいので、インストール手順は省略します。
僕の書いた記事で良ければ以下をご覧ください。

Windows版 Atomのインストール
>> WindowsにAtomでお手軽にC言語環境を作る方法
 →「手順1:Atomのインストール」の部分

>Windows版 Visual Studio Codeのインストール
>> [Visual Studio Code][Windows] C言語をビルド(コンパイル)&ステップ実行する
 →「➋ VS Codeのインストール」の部分

Mac版 Visual Studio Codeのインストール
>> [Visual Studio Code][Mac] C言語をビルド(コンパイル)&ステップ実行する
 →「➋ VS Codeのインストール」の部分

Windows版 Emacs
>> WindowsユーザーでEmacsを導入したい初心者ユーザーのための情報まとめ

 

ま、大抵はインストーラーをダブルクリックして「次へ」ボタンを数回クリックするだけなので説明するようなもんじゃないけどね(笑)
Macならもっと簡単。

ってことで、お好きなエディタをインストールしてください。

 

別に読まなくてもいいオマケ:MacやWindowsの色々なエディタ(読む時はクリックしてね)
別に読まなくてもいいオマケ:MacやWindowsの色々なエディタ

エディタについて

WindowsでもMacでもLinuxでも、C言語を書くだけならテキストファイルを書いて保存できるエディタがあればいいです。
別にAtomやVisual Studio Codeみたいなものをインストールしなくてもいいです。
最初からOSに入っているメモ帳(Windowsの場合)でもメモ(Macの場合)でもいいです。

そう、『書く』だけならね。

実際の所、メモ帳やメモでは機能が貧弱過ぎてまともに使ってられませんが(笑)

なので、それなりのエディタをインストールします。
なんでもいいです、お好きなものをインストールしてください。

 

代表的なエディタを挙げておきますので、興味があれば使ってみてください。
Vectorに大量にエディタがあるので、それらを片っ端から使ってみるのも良いと思います。
(僕はそれやりましたw)

Windows版もMac版もある代表的なエディタ

  • Emacs
  • Vi/Vim
  • Sublime Text
  • Atom
  • Visual Studio Code
  • Brackets

Windowsでの代表的なエディタ

  • 秀丸エディタ
  • サクラエディタ
  • TeraPad
  • xyzzy
  • Notepad++
  • oedit
  • Mifes
  • EmEditor
  • WinVi

Macでの代表的なエディタ

  • Cot Editor
  • mi
  • jEdit
  • Jedit

※jEditとJeditは別物です

どのエディタを使えばいいの?

で、、、、

どんなエディタがええんじゃーーーーっ!!!!???

 

と聞かれても、、、

お好きなものをどうぞ

としか言えないんですが・・・・(笑)

ま、最近ならAtomかVisual Studio Codeでいいかなと思います。
『エディタとは・・・』と語りたければVi/VimやEmacsでいいんじゃないでしょうか。
※Emacsはエディタじゃない環境だ!という意見もありますけどね。

どちらのエディタもC言語に関するプラグインが幾つかあります。
※よく分からない間は入れなくていいです、不便になってから入れればいいでしょう

とは言うものの、あなたがプログラミングの超初心者なら、AtomやVisual Studio Codeはオススメしません。
いや、別に、AtomやVisual Studio Codeを使いたいと思えば使っていいですよ。
何も問題ありません。

ただ、プラグイン入れたり、動作がちょっと重たかったりと、プログラミング以外に考える事が増えるかなと思うだけです。

プログラミング超々初心者のあなたに僕がオススメするとしたら、

  • Windowsの場合
    • TeraPad
    • oedit もしくは otbedit
  • Macの場合
    • Cot Editor
    • mi

ってな感じです。
自動でC言語の命令に色が付きますし、プラグインとか要らないし、キーバインドも普通で迷わず使えると思います。

 

1~2ヶ月ほどプログラミングして慣れて余裕が出来てきたら色々なエディタを試して自分に合うものを探すと良いです。

僕は秀丸エディタをメインに使ってます。
でもMacでは使えないので、Emacs、Atom、Visual Studio Codeを使っています。(Vi/Vimもほんのちょっとだけ使えますけど、モード切り替えが好きじゃないので・・・)

特に使い分けの基準はありません。
その日の気分で使ってます。

関連記事ってワケじゃないですけど、僕が書いたエディタの記事で良ければご覧ください。
※超初心者の方が今読むと混乱する恐れがあるので、余裕が無ければ読まない方が良いです(笑)

>> 効率良くプログラミングするためのエディタの使うべき機能5つ
>> エディタカテゴリの記事一覧

 

2.コンパイラをインストールする

さて、コンパイラをインストールしましょう。

C言語をやるなら、このコンパイラだけインストールすれば使えます。
別にエディタとか統合開発環境(Visual Studio 2015やEclipse、HEW等)をインストールする必要はありません。
エディタや統合開発環境はあくまでも便利に使うためだけのものです。C言語をやるのに必須ではありません。

別に読まなくてもいいオマケ:Visual Studio 2015ってコンパイラなの?(読む時はクリックしてね)
別に読まなくてもいいオマケ:Visual Studio 2015ってコンパイラなの?
Visual Studio 2015は統合開発環境です。
コンパイラではありませんが、コンパイラ(←gccとは違うコンパイラ)も同時にインストールされます
別に読まなくてもいいオマケ:C言語用のコンパイラってgccだけ?(読む時はクリックしてね)
別に読まなくてもいいオマケ:C言語用のコンパイラってgccだけ?
gcc以外にもコンパイラはあります。

BCC32CやLSI Cとか有名です。

BCC32C(以前は「Borland C++ Compiler 5.5」と呼んでたやつ)

 → C++Compiler – 無料版
 → ※登録が必要(無料)

LSI C-86 Ver. 3.30c試食版

 

C言語コンパイラって幾つかありますが、gccさえ知っていれば問題無いでしょう。
って事でgccのインストールをオススメします。

gccはMacでもLinuxでもWindowsでも使えます。

がっ!!!!

Windowsの場合はそうすんなりとはインストールできません。
WindowsでgccをインストールするにはMinGWというソフトを使う必要があります。

MinGWからgccをインストールする方法は以下の記事をご参照ください。

↓「MinGW」の部分

 

Xcodeのインストールは要注意
Macの場合、Xcodeをインストールすればgccもインストールされます。
しかし、Xcodeのインストールは要注意です。
インストールが途中から進まなくことがあります。
>> App StoreからXcodeをインストールできない!?

3.PATHを設定する

Windowsの場合

事前にgcc.exeの場所を探しておいてください。
MinGWをインストールする際に設定を変更していなければ C:\MinGW\bin にあるはずです。

  1. エクスプローラー起動
  2. マイコンピューターで右クリック
  3. プロパティ選択
  4. システムの詳細設定
  5. 「環境変数」ボタン
  6. ユーザー環境変数 or システム環境変数にPathがあります
    そのPathの最後に ;C:\MinGW\bin を追記
    ※「;」を必ず付けてね
    ※但し、Windows10(8もかな?)では1行ずつ登録できるので「;」は意識しなくていいです
    ユーザー環境変数とシステム環境変数の違い
    ユーザー環境変数:今ログインしているユーザーだけに有効
    システム環境変数:全てのユーザーに有効
    お好きな方をお使いください。
  7. マシンを再起動
Pathの変更は慎重に!
Pathの最後に追記してください。
既に設定されているPathの設定値を消さないでください。
もしも消してしまうとエラいことになりますので、要注意!!!!

 

Macの場合

Macの場合はPATHの設定は不要だと思います。
既にPATHが通っている場所にgccがインスールされているでしょう。

もしも、PATHを通す必要があれば、以下のように設定してください。

  1. ターミナル起動
  2. > vi ~/.bash_profile
    ※viの使い方は別途ググってください。ゴメンね。
  3. export PATH=$PATH:/usr/local/bin/ を追記
    ※gccが /usr/local/bin/ にある場合
  4. マシンを再起動

 

PATHってなに?

「パス」と読みます。
これは 環境変数 と呼ばれるものです。

会話の中では、

『PATH通してる?』
『PATHの設定したよ』

と使います。

 

普通、コマンドプロンプトで実行ファイルを実行するとき、フルパス(絶対パスor相対パス)を指定しなければいけません。
(※カレントディレクトリにある実行ファイルは実行ファイル名のみでいいですが、、、、、←意味がようワカラン場合は今は気にしないでいいです)

> C:\MinGW\bin\gcc.exe って打つのって面倒ですよね
> gcc.exe って打つ方がラクですよね。

OSが実行ファイルを探す場合、まずはカレントディレクトリを探します。
カレントディレクトリに無ければPATHに登録されているフォルダ(ディレクトリ)を探してくれます。

つまりPATHという環境変数に登録しておけば、フルパス書かなくても実行ファイル名のみで実行が可能になります。

PATHはWindowsにもMacにもLinuxにもあります。
使い方も全く同じです。
PATHや環境変数については、必ず覚えて欲しい概念です。

現在登録中の全ての環境変数を見るためには、Windowsの方は、コマンドプロンプトで set、Mac/Linuxの方は export と打ってみてください。
PATH以外の環境変数を見ることができます。
PATHも表示されているはずですので探して見てください。

 




 

◆全体像の C言語でプログラムを書こう!!!!

全体像

  1. インストール
  2. C言語でプログラムを書く ←イマココ
  3. コンパイルする
  4. 実行する

エディタとコンパイラをインストールしましたね。

いよいよC言語でプログラムを書いてみましょう。
サンプルとして3つ置いておきますが、内容の説明は省略します。
あくまでもC言語プログラムの一例として見てください。

※動かし方は次の章で説明しますね

Sample1 : やっぱり Hello World! かな

まずは簡単なものから

#include 

int main(void)
{
    printf("Hello, World. \n");
    printf("I'm kei. \n");
    
    return 0;
}

 

Sample2 : 足し算プログラム

次はちょっと計算してみましょう

#include 

int main(void)
{
    int a;
    int b;
    int c;
    
    a = 3;
    b = 6;
    
    c = a + b;
    
    printf("%d と %d を足すと答えは %d です。 \n", a, b, c);
    
    return 0;
}

 

別に読まなくてもいいオマケ:『こんにちはマイコン』という名著(読む時はクリックしてね)
別に読まなくてもいいオマケ:『こんにちはマイコン』という名著
この足し算プログラムは僕が初めて見て、そして初めて書いてみたプログラムです。

『こんにちはマイコン』というかなり大昔の本に載っていたBASICのプログラムで、当時持っていたMSXで書いて動かしました。

『こんにちはマイコン』は日本のコンピュータ書籍の中で名著中の名著と言っていいでしょう。
夢中で何度も何度も読んだ本です。
もう手元にはありませんけど、今でも思い出の一冊です。

書いている内容は古いですけど、今の時代の子どもが読んでも楽しく勉強になると思います。

『こんにちはマイコン』は電子書籍で復活しています。
興味ある方はどうぞ。

 

『こんにちはマイコン』のホームページ

 

Sample3 : 足し算プログラム2

次は足し算する数を手入力してみましょう

#include 

int main(void)
{
    int a;
    int b;
    int c;
    int youre_answer;
    
    /******************************/
    /*  質問                      */
    /******************************/
    printf("足される数を入力してください:");
    scanf("%d", &a);
    
    printf("足す数を入力してください:");
    scanf("%d", &b);
    
    printf("あなたは、答えは幾つだと思いますか?:");
    scanf("%d", &youre_answer);
    
    printf("\n");
    
    
    /******************************/
    /*  正解を計算                */
    /******************************/
    c = a + b;
    
    printf("%d と %d を足すと答えは %d です。 \n", a, b, c);
    
    printf("\n");
    
    
    /******************************/
    /*  結果はっぴょーーー!      */
    /******************************/
    if(c == youre_answer)
    {
      /* 正解 */
      printf("正解です。あなたは天才です!まさに天災!!\n");
    }
    else
    {
      /* 不正解 */
      printf("不正解です。小学校に出直しやがれ!\n");
    }
    
    return 0;
}

 

◆全体像の コンパイルしよう!!!!

全体像

  1. インストール
  2. C言語でプログラムを書く
  3. コンパイルする ←イマココ
  4. 実行する

さて、プログラムを書いたところで、次はコンパイルです。
コンパイルっていうのは、C言語のプログラムコードをコンピュータが分かる言葉に変換するものです。
コンピュータが分かる言葉に変換されたものが実行ファイル(Windowsで言えばEXEファイル)です。

コンパイラを使うためにはコマンドプロンプト(Windowsの場合) or ターミナル(Macの場合)が必要です。

手順1:コマンドプロンプト(Windowsの場合) or ターミナル(Macの場合)を起動

↓クリックすれば開いて読めるようになります

コマンドプロンプト(Windowsの場合)の起動方法(パターン1)

コマンドプロンプト(Windowsの場合)の起動方法(パターン1)

コマンドプロンプトの起動方法は2種類あります。

1つ目はスタートメニューからパターンです。

  1. スタートメニュー
  2. プログラムとファイルの検索
  3. cmd 入力
  4. C言語のプログラムファイルがある場所まで移動する
    その場所が C:\clang\test1\ だとしたら、

    C:\> cd C:\clang\test1\

    と打ちます。

cdとはChange Directoryという意味です
コマンドプロンプト(Windowsの場合)の起動方法(パターン2)

コマンドプロンプト(Windowsの場合)の起動方法(パターン2)

2つ目は、エクスプローラーからパターンです。
※これあまり知られてないと思うので、覚えておくと案外便利ですよ

  1. エクスプローラー起動( Win + E
  2. C言語のプログラムファイルがある場所まで移動する
  3. アドレスバーに「 cmdEnter 」入力
  4. CD済みでコマンドプロンプトが起動します
cdとはChange Directoryという意味です
ターミナル(Macの場合)の起動方法

ターミナル(Macの場合)の起動方法

Dockにターミナルがあるので、それをクリック

mac_terminal

手順2:gccでコンパイルする

まずはgccが使える状態かどうか確認しておきましょう

gcc.exeがありますね
PATH通ってますね?

コマンドプロンプトで gcc --help と打ってみてください。

↓こんな感じのものが出てればgccが正常に使える状態です。(以下はWindowsの場合です。Mac/Linuxの場合は違う表示になるかも知れません)

> gcc --help
Usage: gcc [options] file...
Options:
  -pass-exit-codes         Exit with highest error code from a phase
  --help                   Display this information
  --target-help            Display target specific command line options
  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]
                           Display specific types of command line options
  (Use '-v --help' to display command line options of sub-processes)
  --version                Display compiler version information
  -dumpspecs               Display all of the built in spec strings
  -dumpversion             Display the version of the compiler
  -dumpmachine             Display the compiler's target processor
  -print-search-dirs       Display the directories in the compiler's search path

(※以下省略)

 

コンパイルする

C言語プログラムのファイル名を test1.c として保存したとしましょう。

以下のコマンドを打ってみてください。

> gcc test1.c

そしたら a.exe a.out が作られています。
これが実行ファイルです。

 

ここで、きっとあなたはこう思うでしょう。

 

a.exe a.out ってなんやねん!????

 

そうなんですよ、普通にgccでコンパイルすると出来上がる実行ファイル名は a.exe a.out なんですよ。

いやいやいやいや、せめてC言語のプログラムのファイル名と同じにしなよ!

 

って思うよね。

でもgccはそんなことやってくれません。
実行ファイル名はちゃんと指定しないと a になります。

逆に言えばちゃんと指定すればいいんです。

> gcc -o test1 test1.c

という感じで -o test1 の部分が実行ファイル名の指定になります。
※この場合 test1 が実行ファイル名になります。好きな名前を書いてください。

毎回面倒ですけど、実行ファイル名 a が嫌ならこのオプションを付けるしかないです。

 

◆全体像の いよいよ実行するぜ!!!!

全体像

  1. インストール
  2. C言語でプログラムを書く
  3. コンパイルする
  4. 実行する ←イマココ

で、実行しましょう。

コマンドプロンプトで実行ファイル名を入力してEnterキーを押すだけです。

> a

とか

> a.exe

とか

> test1

とか

> test1.exe

とか

> ./a.out

とか

> ./test1

って打てば実行できます。

 

その後の進め方

デスクトップをこんな感じにしてみてはいかがでしょうか?

エディタとコマンドプロンプトを並べるのです。
以下の図では、左にエディタ、右上にエクスプローラー、右下にコマンドプロンプトを配置しています。(配置方法はどーでもいいですけど(笑))

desktop
  1. エディタでプログラムを書く
  2. コマンドプロンプトでコンパイルする
  3. コマンドプロンプトで実行&動作確認する
  4. ➊ に戻る

ってな感じでやればいいんです。

『コマンドプロンプトに毎回 gcc -o test1 test1.c って打つのが面倒だ!!!』

と思いました?

2回目以降は矢印キーの を押してみてください。

一度入力したものはコマンドプロンプトが記憶してくれているので、同じコマンドを何度も打つ必要はありません。
ちなみに、ファイル名とかを打つ場合、途中まで打って TAB キーを打つと補完してくれることがあります。

コンパイラとかインタプリタって何?

ここからはほんの少しだけお勉強です。

と言っても難しいこと書いても仕方ないので、超簡単に書きます。
※よく分からなかったら忘れてください^^

コンパイラについて

そもそもコンパイラってなに?って話ですが、、、、

 

CPUは人間の言葉を理解できません。
日本語はもちろん英語もタガログ語も理解できません。
ま、当然と言えば当然ですが(笑)

CPUが理解できるのはマシン語のみです。

 

別に読まなくてもいいオマケ:マシン語(機械語)ってなに?(読む時はクリックしてね)
別に読まなくてもいいオマケ:マシン語(機械語)ってなに?
マシン語ってのは「0(ゼロ)」と「1(イチ)」の組み合わせのみでできています。
001001010101110101010101101001010101110101010101010・・・・ みたいな感じが命令になっています。

マシン語の説明って大体ここで終わるのですが、「0(ゼロ)」と「1(イチ)」ってなんやねん?って思いません?

「0(ゼロ)」と「1(イチ)」っていうのは、電気です。

・・・・みたいな話をしだすとワケが分からなくなるので、やっぱり止めておきます。

もしも興味があるならこの本をオススメします。
興味あるならね。
プログラミング経験が無くても読めますけど、逆に言えばプログラミングの勉強にはなりませんのでご注意を。

表紙は柔らかい雰囲気ですけど、内容は ガチ です!
なかなかの名著です。

 

例えばですが、以下のようなC言語プログラムを書いたとしましょう。

#include 

int main( void )
{
  int a = 3;
  int b = 4;
  int c;

  c = a + b;

  printf("c is %d \n", c);

  return 0;
}

C言語が分からない方やプログラミング未経験の方には分からないかもしれません。
でも、よーーーーーく読めば人間ならなんとな~~~~く意味は分かるかと思います。

しかし、コンピューター(CPU)は一切分かりません。

 

え? C言語のプログラムをCPUが実行してるんじゃないの?

 

と思うかも知れませんが、CPUはC言語のプログラムなんて一切読んでいませんし、実行もできません。

じゃぁ、どうしてるのかと言うと、、、、

『C言語プログラムを機械語に翻訳したもの』を読んで実行しています。

この機械語に翻訳されたものが実行ファイル(WindowsでのEXEファイル)です。
実行ファイルを作ってくるのがコンパイラです。

ちなみに、C言語はコンパイル系の言語です。

 

インタプリタについて

コンパイラの説明を聞いて、

いやいや、

『翻訳(コンパイル)なんかやってないで!』
『実行ファイルなんて作ったことないで』
ruby test1.rb って打って即実行してるで』

と、思ったあなたは既にインタプリタ系の言語(RubyとかPythonとか)を使っていますね。

そうです、コンパイルせずとも使えるプログラム言語があります。

コンパイル系はプログラムの全部をまとめて翻訳しますが、インタプリタは少し翻訳→少し実行→少し翻訳→少し実行、・・・・・というのをやります。

 

じゃ、インタプリタでいいじゃんと思うかも知れませんが、翻訳して実行してを繰り返すので、実行速度はコンパイル系よりも遅くなります。

 




 

まとめ

C言語の開発環境を作るなら、これだけインストール&設定すればオッケーです!

  • エディタ
    プラグインとか今は無しでOKです
    文字が書けて保存ができればOK
  • コンパイラ(gcc)をインストール
  • gcc.exeへのPATHを設定

Eclipseだとか、CDTだとか、Atomだとか、Visual Studio Codeだとか、プラグインだとか、静的解析ツールだとか、linterプラグインだとか、そんなややこしいものは、最初は不要!!!

まずはシンプルにコマンドプロンプト or ターミナルでやってみましょう。

今回の方法で面倒になってきてから(きっと面倒になってくるでしょう)、色々なツールやエディタや統合開発環境を使ってみましょう。
『コンパイラ』をしっかり意識できるようになれば、他のツールをインストールする場合、何をどこにどう設定するか見えるでしょう。

さいごに、

僕も書いてるんですけど、C言語の環境を作るのにいきなりAtomやVisual Studio Codeとコンパイラを同時にインストール&紐付けする記事があります。

コンパイラなんて聞いたこと無い、何するものか知らない、何も分からない、というような方がそのような記事を最初に読むとサッパリワカランってなる可能性があります。

もしもそういう状態になってしまったら、この記事で最低限の手順を知って頂ければと思いこの記事を書きました。

まずは必要最小限のC言語環境を作り、そこから始めて慣れれば、その後AtomやVisual Studio Codeへの応用も効くでしょう。

 

この記事を書いたのは、前に僕が書いた記事へのコメントがきっかけです。
>> WindowsにAtomでお手軽にC言語環境を作る方法

『分かりにくい』というご意見をもらい、読み直すと・・・確かに分かりづらい部分があるなぁと感じました。

それに以前から、最近の開発環境の作り方がややこしいなぁと思っていたんですよね。

AtomやVisual Studio Codeで開発環境を作れるんですけど、作り方の手順が面倒だしそんなに便利じゃないんですよね。(scanfを使えないとか)
特に初心者の方にはコンパイラがどれで静的解析プラグインがどれで色付けプラグインがどれってのが分かりづらい。
また、自分にとって必要なものはどれで不要なものはどれか・・・ってのがよく分からないんですよね。

最近のネットの情報を見るとどんどんややこしくなっている。

シンプルに作れば超簡単だし、ちょっとずつ必要なものを入れていけば、何もややこしくないのに。

エディタでプログラム書いて、コマンドプロンプトでコンパイルして、実行する。
ただそれだけのシンプルな事なのに。

インストールも大したことないし、プラグインがどうだとか、設定がどうだとか、そんな複雑なことしなくてもできるのに、なんでAtomやVisual Studio Codeでややこしい設定しなければいけないのかなぁ?

なんてずっと思ってたんですよ。

 

そういうこともあって、今回このような記事を書きました。

 

開発環境作りなんて、本当は何も難しくありません!!!
コンパイラとかを『きちんと理解する』という工程をすっ飛ばすから無駄に難しく感じるだけです。
カッコいいとか最先端のものを使おうとか、(意味も分からず)プラグイン使おうとか、それもいいですけど、シンプルにコアな部分から理解すれば全く難しくありません。

・・・・・と言うか、『理解する』というほど難しいものは何もありません。

 

この記事がC言語の開発環境作りで困っている人のお役に立てれば嬉しいです。

参考書籍

別に参考にならないと思いますけど・・・・
コンパイラもソフトウェアなので、自分で作ることもできます。
そのためには色々とお勉強が必要になります。
もし、自分でもコンパイラを作りたいとか、作らないまでもコンパイラをもっと知りたい方は、これらの本が参考になるかと思います。

コンパイラ本と言えばコレでしょうね。
見るからに難しそうで、僕はとてもとても読めませんけど(笑)

上の本よりはこっちの方が読みやすいでしょう

僕はこの本やりました。
内容はインタプリタですが、プログラム言語を解析する手順が分かります。
古い本なので手に入らないかも知れませんが似たような本があると思うので、色々探してみてください。

15 件のコメント

  • コンパイラ??インタプリタ??

    さっぱり分からん!!  

    でも、プログラムって面白そう。

    Excel関数でいろんなフォーマットを作ってきて、ここでいまさらのように、プログラムに興味が湧いてきました。

    このブログを面白可笑しく読んで、更に、ふつふつと奥底から興味が湧きあがっています。

    • 江戸川三歩さん

      プログラムは楽しいですよ。
      私はプログラマですから仕事でプログラミングやってますけど、プログラムは今でも好きです。
      プログラミングなんてそんなに難しいものではありませんので、是非挑戦してみてください!!!

  • C言語始められました。
    とても分かりやすい記事でした。ありがとうございます!

    ところで、gccのPATHの設定とかしてる時に気が付いたのですが
    windows10では[;]が要らないのだと思います。つけるとうまくいきませんでした。

    まぁ、PC初心者の考えなので勘違いがあるかもしれませんが、一応報告しておきます。

    • お役に立ったようで嬉しいです。
      ありがとうございます。

      Windows10でも確認しましたが、おっしゃる通り不要ですね。
      Windows10からは1行ずつ登録できるので「;」は意識しなくていいようになっていますね。
      教えてくださりありがとうございました。

  • C:\MinGW\bin>gcc test1.c
    gcc: error: test1.c: No such file or directory
    gcc: fatal error: no input files
    compilation terminated.
    こうなるのですがどうしたらいいですか?
    gcc –helpは出来ました

    • この部分に注目してください
       ↓
      『C:\MinGW\bin>』

      コマンドプロンプトが今居る位置(カレントディレクトリといいます)がおそらくgccがインストールされている位置に居ます

      test1.cがいる位置に移動してください

      例えば、test1.cが『c:\hoge\fuga\test1.c』にいるのであれば、
      コマンドプロンプトで
      『cd c:\hoge\fuga』と打ってください

      そうしたら、最初に注目した『C:\MinGW\bin>』が『c:\hoge\fuga』になります

      そうなってから『gcc test1.c』と打ってみてください

      ※環境変数PATHに『C:\MinGW\bin』を通しておく必要があります。
       →本記事の『3.PATHを設定する』の部分を参照
      ※コマンドプロンプトの起動の仕方
       →本記事の『手順1:コマンドプロンプト(Windowsの場合) or ターミナル(Macの場合)を起動』の部分を参照

  • こんにちは。
    C++の勉強をしようと思い、たどり着きました。
    早速、vscode minGWインストール後
    コードをコンパイルしましたが、下記のエラーが出てしまいます。
    C:\Users\user\AppData\Local\Temp\ccxlgUNl.s: Assembler messages:
    C:\Users\user\AppData\Local\Temp\ccxlgUNl.s:5: Error: junk at end of line, first unrecognized character is `,’

    コードは短く
    #include
    //using namespace std;

    int main()
    {
    //cout << '0' << ( int )(unsigned char)'0' << "ttt"<< endl;
    // cout << 'a'<< ( int )( unsigned char )'s' << "sss"<< endl;
    return 0;
    }
    となっています。
    コメントにした部分が3か所ありますが、コメントを付けた後も同エラーが発生しておりますので、コンパイラ側の設定でしょうか。
    お手数をおかけしますが、周りに頼れる人もいなく、途方にくれています、
    ネットで検索したところ、英語のサイトにはいくつか同質問があったみたいですが、英語が堪能でもなく、verの問題?とか書いてあったように思いますが(その質問が2009年のものでした)、最新版をダウンロードしたはずなんですが、、、
    以上、よろしくお願いいたします。

  • 先ほどのものですが、追記です。
    マクロ部分をコメントにしたらエラー内容が変わりました。

    C:\Programing>g++ mozi.cpp
    c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: unrecognized option ‘-plugin’
    c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: use the –help option for usage information
    collect2.exe: error: ld returned 1 exit status

    となっています。
    統合開発環境で少しプログラムをしたくらいの経験なのでお恥ずかしい質問かとは思いますが、なんとか勉強していきたいのでぜひご教授ください。
    よろしくお願いいたします。

  • コマンドプロンプトで足し算の二つ目のプログラミングを試してみました。(全体でいうと三つ目)
    試してみると日本語?の部分が気持ち悪い感じとカタカナの文章になって出てきました。
    どうすればいいのでしょうか?

    • 記事の上の方に『文字コードついて』というのを書いていますが、そちらが参考になるでしょうか?(赤色の注意書きです)

      それでもダメならまた連絡ください。

  • 素晴らしい記事です。
    なんとなくわかってたことがすべてクリアになりました!
    これだけの記事を書くのは大変な時間が係ったことでしょう。
    ありがとうございます。

    …で、次は何をすればいいですか???

    • C言語の入門書を買ってきて、

      1.C言語をエディタ書いて保存する(本の例題とか丸写しでOK)
      2.gccでコンパイルする(Macならターミナル、Windowsならコマンドプロンプトを使用)
      3.きっとコンパイルエラーが出るでしょうからそれが無くなるまで修正&コンパイルを繰り返す
      4.コンパイルエラーが無くなればコンパイル成功
      5.動かす
      6.1番に戻ってC言語を覚える
      —-
      7.ある程度C言語を覚えたら、知ってる命令だけを使って簡単なプログラムを作ってみる
        足し算するだけのプログラムとかそんなショボイのでOK

      頑張ってください!!

  • k.a へ返信する コメントをキャンセル

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    ABOUTこの記事をかいた人

    Windows/Mac/Linuxを使う現役システムエンジニア&プログラマ。オープン系・組み込み系・制御系・Webシステム系と幅広い案件に携わる。C言語やC#やJava等数多くのコンパイラ言語を経験したが、少し飽きてきたので、最近はRubyやPython、WordPressなどのWeb系を修得中。初心者向けのプログラミング教室も運営中。オンライン・対面・出張等でプログラミングをレッスンします。