2
0

More than 1 year has passed since last update.

Visual Studio Code で SDL2 サンプルプログラムをビルド

Posted at

「SDL2 のサンプルプログラムを試す」
https://qiita.com/nanbuwks/items/379013b65fa10ce042a5

は vim と CUI で実現したのですが、VSCode が楽しそうなのでそれでビルド/デバッグ環境を作ってみます。

環境

  • Ubuntu 22.04
  • Visual Studio Code 1.74.0

C++ プログラムのための設定をする

先の「SDL2 のサンプルプログラムを試す」記事で C++ 環境はインストールしていますので VSCode 上の設定を行っていきます。

「C++」で検索して、「C/C++ for Visual Studio Code」 拡張をインストールします。
image.png
同様に、「C/C++ Extension Pack」もインストールします。
image.png

C++ プログラムのビルドの確認

フォルダを開くで適当なフォルダを選択し、File の New File... で test-1.cpp を作成します。

サンプルプログラムとして、以下のコードとしました。

#include <iostream>

int main(void)
{
	std::cout << "Hello, C++" << std::endl;
	return 0;
}

左の虫マークを押して、

image.png

Run and Debug のボタンを押します。
image.png

ここは一番上の g++ を選択するのでいいみたいです。

image.png

無事実行されました。標準出力の結果はTERMINALを選ぶと表示されます。

image.png

行を選ぶとブレークポイントが設定されて、デバッグもできるようです。

image.png

SDL を動かす

「SDL2 のサンプルプログラムを試す」
https://qiita.com/nanbuwks/items/379013b65fa10ce042a5
のプログラムをコンパイルしようとすると・・・

ビルドを開始しています...
/usr/bin/g++ -fdiagnostics-color=always -g /home/nanbuwks/Downloads/sdl/test.cpp -o /home/nanbuwks/Downloads/sdl/test
/usr/bin/ld: /tmp/cczzjnxT.o: in function `main':
/home/nanbuwks/Downloads/sdl/test.cpp:8: undefined reference to `SDL_Init'
/usr/bin/ld: /home/nanbuwks/Downloads/sdl/test.cpp:10: undefined reference to `SDL_CreateWindow'
/usr/bin/ld: /home/nanbuwks/Downloads/sdl/test.cpp:12: undefined reference to `SDL_CreateRenderer'
.
.
.

となります。

-lSDL2 -lSDL2_image

のオプションを指定するには?

$ ls .vscode
c_cpp_properties.json  launch.json  tasks.json

プロジェクトフォルダに .vscode ができていて、そこの tasks.json で指定するようです。

.vscode/tasks.json の中身はこうなってました。

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ アクティブなファイルのビルド",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "デバッガーによって生成されたタスク。"
        }
    ],
    "version": "2.0.0"
}

args に以下を足しました。

                "-lSDL2",
                "-lSDL2_image"

うまくいきました。
image.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0