詳解[GCC]VScodeでC/C++をコンパイル・実行する

プログラミング

今回はGCCをインストールして、VScodeのターミナルからC言語のファイルを実行できるようにします。 少し作業が長いですが、ゆっくりやっていけば大丈夫です!

以下が全体の流れです。

  • STEP1
    MinGWをインストール
    MinGWをインストールします
  • STEP2
    MinGWのPathを通す
    MinGWのPathを通します
  • STEP3
    VSCodeをダウンロード・C言語のファイルをコンパイル
    VSCodeをダウンロードして、C言語のファイルをコンパイルします
  • STEP4
    (オプション)F5キーでコンパイル・実行
    F5キーでコンパイル・実行できるようにします
スポンサーリンク

MinGWをインストール

MinGWのインストーラをダウンロードして実行します。

MinGWのインストールが終わったら
mingw32-base
mingwa32-gcc-g++
を選びます。(右クリックで[Mark for Installation]をクリック。)
選び終わったら、画面左上の[Installation]から[Apply Change]をクリックします。

少し時間がかかるので、気長に待ちましょう。

MinGWのPathを通す

環境変数をいじるのですが、今回は安全に変更するためにフリーソフトを使って環境変数を追加する方法をご紹介します。 redmondpathをダウンロード
ダウンロードしたら、展開して、実行します。その後、以下の画面が出るので緑のプラスボタンをクリックして[C:]→[MinGW]→[bin]へと移動して[OK]をクリックします。

以下の青の網掛け部のようにC:MinGW\binとなっていれば大丈夫です。

注意
環境によってはここで再起動する必要があります

フリーソフトを使わないやり方

こちらのやり方のほうが一般的です。Pathを通したことがある人はこちらの方法でも大丈夫です。

そうしたら新たに

C:MinGW\bin

を追加します。

VSCodeでの操作

VSCodeをダウンロードする

VSCodeでGCCを用いてコンパイルする

ファイルを置くためのフォルダを作り、そのフォルダを開きます。

新しいファイル「sample.c」を作成し、「Hello! World」を出力するプログラムを記述します。そして、ターミナルを開きます。

#include <stdio.h>
int main()
{
printf("Hello! World");
eturn 0;
}

ターミナルを開いた後に、ターミナルに以下のコマンドを入力して、作成したファイルをコンパイルします。

gcc -o hello hello.c

実行ファイルが作られたので再びターミナルでファイルを実行させます。

./hello

Hello! Worldと出力されるはずです。そうなれば一応の設定完了です。

F5でコンパイルされるようにする

ターミナルで実行するのもいいですが、若干面倒なのでF5で結果を出力できるようにしたいと思います。
ターミナルで実行できればいいという方はこれ以上の作業は必要ありません。

拡張機能 C/C++をインストール

右のバーにある拡張機能のアイコンをクリックして、C/C++をインストールします。

 

設定ファイルを書き換える

[View] -> [Command Paratte]で[C/C++]を検索してConfigファイルを開きます。

[compiderPath]を先ほどインストールした場所に書き換えます。

c_pp_prooerties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "C:\MinGW\bin\gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

また、同じ.vscodeディレクトリに「lanch.json」の[“externalConsole”: false,]をtrueにします。

 
lanch.json
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "gcc.exe - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\MinGW\bin\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "gcc.exe build active file"
        }
    ]
}

これでF5を押すことで、Cを実行できるようになりました。
(最終行にブレークポイントを置くことでターミナルが消えなくなりますが、かっこう悪いので解決方法を知っている方は教えてください….)

おすすめの本

わたしがC言語初心者だった時、参考にした本を載せたいと思います。C言語がある程度理解できれば、ほかの言語もすぐに理解できると思います。
また、プログラミングの入り口としてPythonなどをやってからCを学ぶのもおすすめです。いきなりC言語を学ぶとプログラミングが楽しくなくなる恐れがあります。

(初心者向け) 独学プログラマー Python言語の基本から仕事のやり方まで

この本を読めばPythonの基本がわかります。Pythonが使えるようになると、普段の生活の中で自動化したいといったときに簡単に自動化できるようになります。Pythonでいろいろな分野のライブラリが作られているます。たとえば、PythonはDeep Learningの分野などでも使われていて、人工知能関係のライブラリも豊富です。習得も簡単なのでおすすめです。Pythonはやっておいて損はない言語だと思います。

(初心者向け) 苦しんで覚えるC言語

「苦しんで覚えるC言語」とは名ばかりで、親切丁寧に書かれています。
レイアウトもわかりやすく、読んでいて苦ではありません。
解説と演習がついているので、自分で進めることもできます。くせのない標準的な本だと思います。

(初心者向け) やさしく学べるC言語入門 基礎から数値計算入門まで

学校の先生がおすすめしていた本です。この本も癖がなく結構読みやすかったです。個人的には「苦しんで覚えるC言語」よりもこの本のほうが読みやすかったです。

(中級者向け) 新・標準プログラマーズライブラリ C言語 ポインタ完全制覇

C言語の難関であるポインタについて、延々と書かれている本です。人によっては退屈に思えるかもしれませんが、ポインタについてよく知りたいと考えている人が読むとポインタとは何なのか理解できるようになると思います。

ポインタの基本的なところから応用的なところまで網羅されています。

C(言語)は超高速ですが、機械語に近い言語なので習得は難しいとされています。しかし、IoTや組み込みシステムの開発をする際にはいまだ低レベルな言語が使われているので、低レベルな開発に興味がある人は読んでみるとよいと思います。

タイトルとURLをコピーしました