📝
[環境構築]VirtualBox+Ubuntu22.04+VSCodeで、C++の開発環境を構築する。(ついでにOpenCVも)
まとまった記事が探しても見つからなかったので、備忘録として。
前提
VirtualBox,Ubuntu22.04,VSCodeはインストールしておく。
-
VirtualBoxインストール
↓ -
VirtualBox上でUbuntu22.04を構築
↓ -
VSCodeをインストール
↓ - (必須じゃないけど)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 10月 21 22:15 CMakeLists.txt
-rw-rw-r-- 1 jun jun 743 10月 21 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