をるふちゃんのブログ

めもっぽいやつ

C++入門 0x0001回 環境構築なんてしない

需要があるかなと思って。

C++を動かすということ

ざっくりとC++を動作させるための流れは以下の通り。

  1. C++言語の仕様に従ってプログラムを記述する
  2. コンパイルする
  3. 得られたバイナリファイルを実行する

待って待って、キーボード投げないで。ちゃんと説明するから。
1はいいよね?「コンパイル」や「バイナリファイル」について以下に記述する。

コンパイル

そもそもプログラミング言語とは何のためにあるのか。
初期のプログラミングというのはCPUが直接実行できるように書くしか方法がなかった。つまりひたすら0か1の羅列ということ。
0か1、つまり2進数は4桁分まとめて16進数(0~9とA~Fで合わせて16文字あり、これを「数字」として扱う)にできるが、それでもとても読めたものではないよね。
なのでそれぞれの数字をある程度英語や記号などに置き換えたりその他色々頑張った結果、アセンブリ言語というものができた。

[BITS 16]
[ORG 0x7C00]

start:
mov   si, msg
call  print_string

fin:
hlt
jmp   fin ;以下略

少なくとも表とにらめっこで16進数で書くよりは簡単そうだよね。
このように「簡単に書く」ための工夫を凝らし、様々な言語が誕生している。
その中の一つであるC言語は1972年に誕生し、その10年後辺りからオブジェクト指向という考え方を取り入れて「C++言語」にさらに進化した。
私から言わせればコイキングギャラドスになるようなものだ。(本当か?)

さて、話を戻す。 プログラミング言語というものは「簡単に書く」ために様々な文法が決められている。それはコンピュータでは直接的に解釈できないため、書き終わった後にCPUが読めるもの=バイナリファイルに変換(翻訳)する必要がある。その作業を行うプログラムのことを「コンパイラ」と呼び、その作業そのものを「コンパイル」という。
コンパイルして出てきたバイナリファイルを実行すればプログラムを動かすことができる。
どうやったら動くのか?そのファイルをダブルクリックすればいい。

環境構築

環境構築とは?つまりC++で書いたものを動かせるようにしようね♪
ということ。

C++コンパイラは一つだけではない。

どれを使っても構わない。ちょっと前まではMSVCはC++14や17といった最新規格の対応がかなり遅れていたが、最近になって巻き返した印象がある。私はほぼこれ一本でC++をやっている。
WindowsではMinGW(Minimalist GNU for Windows つまりGCCWindows版だ)はパッケージ管理とかしっちゃかめっちゃかになる印象があるので何とも言えないけどググればなんとかなる。

※ここは今は解説しない。理由はね…… 書くのが面倒くさい
手抜きと言われたらおしまいなんだけど。私はWindowsで、Linuxは今は環境作っていない。またMacは持っていないのでそれらすべてを網羅してわかりやすい説明を行うには荷が重い。
さらに言うとMSVCのスクショを取るにしても一旦Visual Studioをアンインストールしなければいけないのだが、数十GBのデータをもっかいダウンロードした挙げ句に設定全部やり直しとかホントマジ勘弁してください

そんなわけで、まずはこれを使ってみてほしい。
https://wandbox.org
Webブラウザ上でC++のコードを実行できる。正直、環境構築なんて必要に迫られて適当に手を動かせばなんとかなるんだよ。

続く。

次回: C++入門 0x0002回 さようなら世界 - をるふちゃんのブログ