はじめに
皆さん、C言語はやってますか? 僕が通っている高専の授業ではではDebian上でC言語を用いてプログラミングを行っていますが、学校でしかできない... という人もいると思います。そこで、Linuxの環境とC言語の環境をWindowsPC上に用意する方法をまとめてみます。
この記事の対象者
- C言語を自分のPCで実行できるようにしたい人
- Linuxのコマンドの練習を自分のPCでやりたいが、Linuxを入れるのは難しい人
この記事をお勧めしない人
- Windowsを愛し、Windowsこそがどの点においても最高だと信じてやまない人
- Macユーザー(ただし仮想でWindowsを使用している場合を除く)
- Visual Studioを使いたい人
この記事を読むにあたって最低限必要なこと
- PCにWindowsが入っていること
- PCの管理者権限を持っていること
- キーボード入力ができること
- ネットからファイルをダウンロードして実行したりなど、最低限のファイル操作ができること
ざっくりとした説明
今回用意する環境の簡単な説明をします。興味のない人や、手っ取り早く環境構築したい人は、少し下の「Ubuntuのセットアップ」に進んでください。
WSLとは
今回は、「Windows Subsystem for Linux」(以下 WSL)というシステムを使って、Windows上でLinuxを再現し、そこにC言語の環境を入れたいと思います。本来LinuxというのはWindowsと同じような括りで、普段使っているブラウザやゲームの土台となる部分です。ですから、WindowsとLinuxを同時に使う ということはできません。しかし、PC上にPCを再現することによって、Windowsの中でLinuxを扱うことができます。これを実現したシステムが「WSL」です。
Ubuntuとは
今回は、Linuxの中でも「Ubuntu」と呼ばれる種類を使います。Linuxと一口に言ってもリンク先の図のようにたくさんの種類があります。その中で、木更津高専の情報工学科では「Debian」という種類を導入しています。
そして、今回扱うLinuxは「Ubuntu」というDebian系Linuxです。これは、Debian系という名前の通りDebianから派生したもので、Linuxの中でもトップクラスのシェアがあります。安定性が高く情報量が多いため、初心者でも扱いやすいOSであり、かつ学校のPCのDebianとほとんど同じように操作できるため、今回はUbuntuを採用します。
GCC/GDBとは
今回は、GCCと呼ばれるC/C++のコンパイラと、GDBと呼ばれるデバッガを使用します。コンパイラとは、プログラミング言語をPCに読める形式に変換してくれるものです。授業を受けた人は、「./a.out」というファイルを扱ったことがあると思います。これが、PCに読める形式に変換されたC言語ファイルです。
そして、C言語のコンパイラはいくつもあります。その中で、今回はC言語の中でもメジャーであるGCCと呼ばれるコンパイラを導入します。ちなみに、GCCはC言語だけではなく、C言語の拡張版である「C++」という言語のコンパイルもできます。
また、デバッガとはデバッグ、つまりバグ修正を行うときに使うツールです。これもいろいろな種類があり、今回はGCCとセットで使われるGDBを使います。
Visual Studio Codeとは
Visual Studio Codeとは、Microsoft社が開発する多機能エディタです。WindowsやMac、そしてLinuxでも使用できることが特徴で、WSLとの連携が非常にしやすいです。また、たくさんの言語に対応しており、専用の開発環境(統合開発環境)に劣らない様々な機能が搭載されているエディタとなっています。
Ubuntuのセットアップ
まずはスタートメニューの検索から「Windows の機能の有効化または無効化」を実行してください。そうすると、チェックマーク付きの一覧が出てくると思うので、その中から「Linux用Windowsサブシステム」「仮想マシンプラットフォーム」にチェックマークを入れてOKを押して、指示に従って再起動してください。
再起動が終わったら、Microsoft Storeページから、Ubuntuをインストールしてください。
ダウンロードが終わったら、Linuxカーネルというものを更新します。Microsoftのページに「x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ」と書いてあるところがあると思うので、そこをクリックしてダウンロードしてください。そうすると、「wsl_update_x64.msi」などという名前のファイルがダウンロードされると思うので、実行して指示に従ってインストールを進めてください。
ダウンロードが終わったら、スタートメニューの検索などからUbuntuアプリを起動させてください。そうすると、下のようなターミナルが開くと思います。これがWSLのUbuntuになります
指示に従って以下の内容を入力していってください。入力したらエンターを押して確定させてください。
・Enter new UNIX username
→Linuxでのユーザーネームになります
・New password
→パスワードを入力してください。この時、入力したパスワードは表示されないので気を付けてください(バックスペースは使えます)
・Retype new password
もう一度確認のためパスワードを入力してください。
これらを入力すると、
ユーザーネーム@PCネーム:$
のような表示になるはずです。これで、Ubuntuのインストールは完了です。学校のPCと同じようにUNIXコマンドを使っていろいろな操作ができます。
GCC/GDBのセットアップ
以下のコマンドを一行ずつ上から実行していってください。
sudo apt update
sudo apt upgrade
sudo apt install gcc
sudo apt install gdb
その時、途中で
[sudo] password for ユーザー名:
と聞かれることがあります。その時は、先ほど設定したパスワードを入れてください。なお、先ほどと同じように入力しても見えませんが、ちゃんと入力されています。また、
Do you want to continue? [Y/n]
と聞かれることもあるので、その場合はy
と打ってエンターを押してください。
すべて実行し終わったら、以下のコマンドを打ってください。
gcc -v
この時、ずらっと出てくる結果の下のほうにgccのバージョンが表示されれば成功です。僕の時は以下のようになっていました。
(中略)
gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04)
これが成功したら、gccの導入は成功です。また、
gdb -v
を実行して、正しくバージョンが出てきたら、gdbの導入も成功です。僕の実行時にはこうなりました。
GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Visual Studio Codeのインストール
Microsoftストアからインストールをしてください。
インストールが終ったら起動すると、下のような画面が出てくるので、画面左の四角がいっぱいあるアイコンをクリックしてください。
そうすると、一覧が出てきて一番上に検索欄があるので、それを使って拡張機能をインストールしてください。
・WSL
↑をクリックすると、以下のような表示が出てくるので、「New WSL Window」を選んでください。
すると、新しいウィンドウが開いたと思います。前に使ってたウィンドウは閉じても構いません。左下に「WSL:Ubuntu」と表示されていれば、無事Ubuntuと接続できています。
接続できたことを確認したら、先ほどと同じ手順で以下の拡張機能をインストールしてください。
・Japanese
・C/C++
・C/C++ Themes
この2つはインストールしてしばらくすると、ウィンドウ上部にこのような表示が出てくるので、好きなのを選んでください。コードを見やすくするための色の配色です
・Cmake
・Cmake Tools
最後にVIsual Studio Codeを再起動してください。再度開いたときに、左下に「WSL:Ubuntu」と表示されていなかったら先ほどと同じ手順でUbuntuに接続してください。
Visual Studio Codeのコーディング設定
プログラムを書いて実行するための準備をします。
まずは、CtrlキーとNキーを同時押ししてください。そうすると、「Untitle-1」というファイルができると思います。次に、CtrlキーとSキーを同時押しすると以下のような表示が出てくると思うので、Untitle-1をtest.cに置き換えてOKを押してください。
そうすると、C言語を書くことができるようになります。
試しに、以下のコードを書いてみてください。
#include <stdio.h>
int main(){
for(int i=0;i<10;i++){
printf("テストはとっても楽しいな\n");
}
return 0;
}
コードを書いたら次は実行します。Ctrl+F5を押すか、右上の「実行」から「デバッグなしで実行」を押してください。すると、下のような表示が出るので、一番上のやつをクリックしてください。
そうすると、下のほうにターミナルが出てきて、実行結果が表示されます。
次回の起動以降
基本的には、今回と同じようにすればできます。ただ、前回と同じファイルを開きたいとき、通常は前と同じファイルを開いててくれますが、たまに閉じられているときがあります。その時は、以下の手順で開いてみてください。
- 右下を確認して、Ubuntuに接続していなかったらUbuntuに接続する
- エディタ上のほうの「ファイル」→「ファイルを開く」から、前回作ったファイル名(今回の場合はtest.c)を開く
余談 - Linuxを使う意味
Linuxを操作する練習のため、Linuxをわざわざインストールしたように書きました。しかし、実はLinux上で環境を構築するメリットはほかにもあります。それは、Windowsと比べて楽に環境が構築できることです。今回の作業をWindowsのみで行うと、パスを通すなどのめんどくさい作業が出てきますが、Linuxはインストールするためのコマンドを打つだけででき、非常に便利です。ぜひ自分でもLinuxについて調べて、Linuxを使いこなしてみてください!
最後に
うまくいかなったら、僕のTwitterにDMするなどして僕に連絡をくれれば、アドバイスします。ぜひ、良いプログラミングライフを!