📝

[環境構築]VirtualBox+Ubuntu22.04+VSCodeで、C++の開発環境を構築する。(ついでにOpenCVも)

2023/10/21に公開

まとまった記事が探しても見つからなかったので、備忘録として。

前提

VirtualBox,Ubuntu22.04,VSCodeはインストールしておく。

  1. VirtualBoxインストール
      ↓
  2. VirtualBox上でUbuntu22.04を構築
      ↓
  3. VSCodeをインストール
      ↓
  4. (必須じゃないけど)VSCodeを日本語化

1.C++ビルド環境をVSCodeに構築する

必要なライブラリをインストール
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt autoremove -y
$ sudo apt -y install build-essential cmake

2.サンプルコードを実行してみる。

main.cppを動かす。
$ mkdir c++test && cd c++test


VSCodeで、作成したフォルダを開く。


信頼する。


main.cppを作成


Ctrl+Sで保存して、名前をmain.cppにする。
下記内容で保存。

main.cpp
#include <iostream>

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


ビルド -> 実行


出来た!! 期待通り"Hello, VSCode!"が表示されている。


ブレークポイントで止まったのも確認できた。

(補足)ついでに、OpenCVの開発環境も作ってみる。

  • VSCodeにcmakeとcmake toolsをインストールする。
    ↓はすでにインストール済だけど、CmakeとCmake Toolsの2つをインストールする。

  • 必要なライブラリをインストール
  • cmakeインストール(VSCodeとは別に必要らしい)
cmakeインストール
$ sudo apt -y install cmake
  • libgtk2.0-devインストール(cv::imshow()を動かすのに必要)
libgtk2.0-devインストール
$ sudo apt -y install libgtk2.0-dev
  • gitインストール
gitインストール
$ sudo apt -y install git

  • githubから一式取得
githubから一式取得
$ mkdir opencvtmp && cd opencvtmp
$ git clone https://github.com/opencv/opencv.git

  • 下記コマンド実行
$ cd opencv/
$ mkdir build && cd build
$ cmake -DOPENCV_GENERATE_PKGCONFIG=ON ..
$ cmake --build .
$ make 
$ sudo make install
$ sudo ldconfig

  • 適当にフォルダ作って移動
$ mkdir opencvtest && cd opencvtest

  • サンプルコード作成(main.cpp)
#include <opencv2/opencv.hpp>

int main(void) {
    // 画像の読み込み
    cv::Mat inputImage = cv::imread("../input.png");

    // 画像が正しく読み込まれたかを確認
    if (inputImage.empty()) {
        std::cerr << "画像を読み込めませんでした" << std::endl;
        return -1;
    }

    // 画像の処理を行う ここでは例として、画像をグレースケールに変換する
    cv::Mat grayscaleImage;
    cv::cvtColor(inputImage, grayscaleImage, cv::COLOR_BGR2GRAY);

    // グレースケール画像を表示
    cv::imshow("Grayscale Image", grayscaleImage);

    // キー入力待ち
    cv::waitKey(0);

    // ウィンドウを閉じる
    cv::destroyAllWindows();
    return 0;
}

  • input.pngを準備
    なんでもいいので画像を準備する。(このページのでもいい)

  • CMakeLists.txt作成

cmake_minimum_required(VERSION 3.0)
project(OpenCVExample)

# OpenCVのパッケージを見つける
find_package(OpenCV REQUIRED)

# #OpenCV関係のインクルードディレクトリのパスを設定
# include_directories( ${OpenCV_INCLUDE_DIRS} )

# ソースファイルを指定
set(SOURCES main.cpp)

# 実行可能ファイルをビルド
add_executable(OpenCVExample ${SOURCES})

# OpenCVをリンク
target_link_libraries(OpenCVExample ${OpenCV_LIBS})
$ ls -l
合計 8
-rw-rw-r-- 1 jun jun 465 1021 22:15 CMakeLists.txt
-rw-rw-r-- 1 jun jun 743 1021 22:15 main.cpp


VSCodeで、Shift+Ctrl+Pでパレット表示 -> CMake Configureを選択 -> "GCC 11.4.0 x86 ..." を選択


ビルド押下

ビルドが終了コード 0 で終了しました

画像(input.jpg)を準備して、

$ ls -l
合計 100
-rw-rw-r-- 1 jun jun   465 10月 21 22:15 CMakeLists.txt
-rw-rw-r-- 1 jun jun 88317 10月 21 22:34 input.jpg
rw-rw-r-- 1 jun jun   743 10月 21 22:15 main.cpp


カブト虫マークを押下して、デバッグ開始


無事、グレースケールになった画像が表示された。

いえー!

Discussion