コンテンツにスキップ

ローカルでの環境構築

repl.itによるブラウザベースではなく、 自分の手元のローカルコンピュータ上でプログラミング環境を構築する方法について述べます。 今年度はやむを得ずブラウザベースの講義形態となっていますが、 プログラミングは本来はまずはローカルで行うことが基本です。 3年生以降ではプログラミングをする際はローカルで行うと思いますので、意欲のある学生は、是非 ローカルでの環境構築にチャレンジしてみてください。

必要なことは

  • なんらかのエディタを使ってファイルを編集できる
  • ターミナルとコンパイラが使える

という二点です。エディタについては、何でもいいのですが、2020年現在だと Visual Studio Code (VSCode) が簡単で人気なのでおすすめです。 皆さんは三年生になるとemacsというプロ向けのエディタを勉強することになりますので、emcasにチャレンジしてもよいです。 Jeff Deanも使っています。 プログラマにとってのエディタやターミナルは、料理人にとっての包丁のようなものです。 いろいろ試してみて、自分に合うものを探究していきましょう。

ターミナルおよびコンパイラについては、以下を参照してください。

Windowsの場合

あなたのPCがWindowsである場合、以下の2通りのメジャーな方法があります

Cygwinを使う

Cygwinとは、UNIX (Linux)をwindowsでエミュレートするものです。Cygwinをインストールすることで、 gccが使えるターミナルがwindowsでも使えるようになります。 導入については、長谷川先生のソフト演習のサイトをご参照ください。

Cygwinは長い間非常に重要なソフトウェアであり、日本語の文献やウェブページも多いのですが、ここ数年は下に述べるWindows Subsystem for Linux 2が 急速に普及してきています。新しいものにチャレンジしてみようと思う方には、以下のWSL2をオススメします。

Windows Subsystem for Linux 2 (WSL2) を使う

Windows Subsystem for Linux 2 (WSL2)とは、その名の通り、windows上でlinuxを構築するもので、MSが公式に提供しているものです。 オフィシャルの手順に従ってインストールできます。 長谷川先生のソフト演習のサイトも参考にしてください。 OSはUbuntu 20.04を選択すればよいです。

CygwinとWSL2の比較は以下です。

  • Cygwinはあくまでwindows上でlinuxをエミュレートして「linux的なもの」を 実行する技術ですが、WSL2は「完全なlinux」を仮想的に構築します。
  • Cygwinは細かい点でlinuxと色々異なりますが、WSL2上では多くのlinux プログラムがほぼ完全な形で動きます。
  • 一方で、WSL2はwindows側とlinux側でどうファイルを共有するかなど、自明ではない部分がかなりあります。まだ新しい技術であるため、不具合も多く、インターネット上の情報も少ないです。 また、WSL2はlinuxを知っている人からは非常に筋が通っている技術に見えるのですが、初めてlinuxを触る人からするとなんでこんなめんどくさい仕組みになっているんだろう?と思うかもしれません。

ここでインストールの際の注意として、

  • WSL1ではなく、新しいWSL2のほうがオススメです
  • WSL2上でVSCodeを使う手順はWSLのドキュメントVSCodeのドキュメントを参照しましょう。 「Add hello world source code」までやればOKです。ここではVSCode Remote WSLという機能によって、windowsからでもまるでlinuxを触っているようにプログラミングが出来ます。
  • ついでに、Windows Terminalという、MS公式の最新のターミナルを入れておくと、画面が非常にきれいになります。
  • Tips:
    • $ explorer.exe . とするとカレントディレクトリをエクスプローラで開いてくれます。非常に便利です。
    • windowsそのものは/mnt/cにマウントされているので、 $ cd /mnt/cとするとWSL2側からwindows側を覗けます
    • 上のドキュメントで紹介されていた通り、カレントディレクトリでVSCodeを起動したいときは $ code . とするのが便利です(VSCode Remote WSLの状態で起動してくれるため、基本的にこの方法でVSCodeを起動するといいかと思います。)

(Visual Studioについて)

本講義ではUNIX環境下でのgccによる講義を扱うため、Visual StudioおよびMSVCは扱いません。Visual StudioとVisual Stuio Codeは全然別ものなので注意してください。

Mac OSの場合

  • Mac OSには標準でターミナルが付属しているはずですので、第一回講義で扱ったターミナルとコマンドの処理は何もしなくても実行できます。
  • コンパイラのgccをインストールする必要があります。次のサイトが参考になると思います:Developing C programs on Mac OS
  • ただし、Mac OSのgccは実はclangとうい別のコンパイラになっています。本講義での範囲ではどちらでも大丈夫なのですが、エラーメッセージなどが異なりますので注意してください。

Linuxの場合

  • もしあなたが既にUbuntu等を使っている場合、説明は不要かと思います。好きなディストリビューションでやってもらって大丈夫です。