[C++]Ubuntu+VSコード環境でC+、OpenCVコードをコンパイルする
今回のリリースでは、Ubuntu 18.04 LTSのVisual StudioコードでC++コードを作成、実行、デバッグする方法について説明します.また、C++で作成されたOpenCVの作成と実行方法についても説明します.
1.必要なツールのインストール
Visual Studio Code "Using C++ on Linux in VS Code" 黄善圭.2019、OpenCV 4のコンピュータビジョンと機械学習を学ぶ.路友
1.必要なツールのインストール
1.1. C/C++拡張インストール
VSコードを実行し、左ドックの拡張アイコンをクリックするか、View-Extensionsを参照するか、Ctrl+Shift+X
をクリックして拡張を実行します.
検索ウィンドウでC/C++を検索し、対応する拡張ツールをインストールします.
1.2. gcc取付
コンパイラgccをインストールまたは確認します.まず、インストールの有無を確認するため、以下のコマンドを実行します.$ gcc -v
筆者はすでに設置してあり、写真のように撮っています.
1.3. gdbデバッガのインストール
次にデバッガをインストールします.$ sudo apt update
$ sudo apt install build-essential gdb
2.ファイルの作成
プロジェクトフォルダとC++ファイルを作成して、C++コードをテストします.筆者はcppTest
ディレクトリを作成し、cppTest.cpp
ファイルを作成しました.$ mkdir cppTest
$ cd cppTest
$ code .
参照として、code
がVSコードを開き、code .
がその位置でVSコードを開き、code 파일명
がそのファイルを開くか開かないかを命令すると、生成される.
開いているVSコードの左側のファイルブラウザ(ドッキングステーション上部のドキュメントアイコンをクリック-New Fileアイコンをクリック)にcppTest.cpp
ファイルを追加し、以下の簡単なコードを入力して保存します.#include <iostream>
using namespace std;
int main() {
cout << "Hello C++!" << endl;
}
3.構築と実行
構築と実行を開始します.
まず、上部のメニューバーで、「ターミナル」-「デフォルト生成タスクの構成」をクリックします.[C/C++:g++アクティブファイル構築]を選択します.
選択すると同時にtasks.json
ファイルが作成され、左側のファイルブラウザで同じプロジェクトフォルダに作成されていることがわかります.このファイルには、コンパイラのコンストラクション設定が含まれています.
次に、cppTest.cpp
ファイルをクリックしてファイルを選択し、そこでCtrl + Shift + B
に構築します.構築が完了すると、関連マニュアルが下部のターミナルウィンドウに表示され、左側のファイルブラウザでcppTest
という実行可能ファイルが生成されます.
下部端末ウィンドウで+
ボタンをクリックし、bash
を選択してbash端末を作成します.このプロセスはUbuntuの端末でも同様に動作する.端末がVSCodeに表示されないか、ウィンドウが閉じている場合は、上部メニューバー-[View]-[Terminal]に端末を再表示できます.
現在作成されている実行可能ファイルを端末で実行します.$ ./cppTest
では、コードの内容が実行されていることを確認できます.
4.デバッグ
上部メニューバーで[Run]-[Add Configuration...]選択次のウィンドウで、[C++(GDB/LDB)]-[g++アクティブファイル構築とデバッグ]を選択します.
選択するとlaunch.json
ファイルが作成され、左側でデバッグウィンドウが有効になります.このファイルはデバッガの設定を行うファイルです.デバッグ時に変数やCall Stackなどが表示されます.
個人的にはVisual Studioよりデザインの方が綺麗だと思いますが…?
主関数をブレークポイントなしでデバッグするには、StopAtEntry
をtrue
に変換して保存します.
その後、cppTest.cpp
に戻り、F5
を押すか、上部メニューバーで[Run]-[Start Debugging]を押すか、左側のペインで◆ボタンを押してデバッグを開始します.
上記で新しく作成したアイコンで、2番目をクリックするか、F10
を押して対応する実行ラインに移動した後、デフォルトの実行方法は他のデバッグと同じです.
その他の設定変更などの詳細や理論は、一番下のリンクを参照してください.
5.OpenCVコードの作成
今回は、OpenCVを使用したC++コードを作成して実行します.
プロセスを行うためにはcmakeをインストールする必要があります.cmake --version
を実行中にバージョン情報が出力されなかったり、対応するコマンドが見つからなかったりした場合は、まずsudo apt install cmake
を使用してインストールを行います.
5.1. プロジェクトフォルダの作成
最初の手順と同じ方法でプロジェクトフォルダとC++ファイルを作成します.$ mkdir opencvTest
$ cd opencvTest
$ code .
cppファイル名はopencvTest.cpp
です.入力コードは次のとおりです.次のコードは、画像の内容を開くだけです.
次のスクリーンショットでは、コードの2行目は#include "/usr/include/opencv2/opencv.hpp"
であり、#include "opencv2/opencv.hpp"
に実行することができる.#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("lenna.bmp");
if (img.empty()) {
cerr << "Image laod failed!" << endl;
return -1;
}
namedWindow("image");
imshow("image", img);
waitKey();
destroyAllWindows();
}
また、このフォルダには、サンプル用の画像ファイルも含まれています.画像にはlenna.bmp
のファイル名があります.
CMakeList.txtの作成
プロジェクトフォルダにCMakeLists.txt
ファイルを作成します.ファイル名は正確に指定する必要があります.中身の仕組みは以下の通りです.cmake_minimum_required(VERSION <본인 cmake의 버전>)
project(<프로젝트 폴더 이름>)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(<프로젝트 폴더 이름> <파일 이름>.cpp)
target_link_libraries(<프로젝트 폴더 이름> ${OpenCV_LIBS})
したがって、私たちの例を変えると、このようになります.cmake_minimum_required(VERSION 3.10)
project(opencvTest)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(opencvTest opencvTest.cpp)
target_link_libraries(opencvTest ${OpenCV_LIBS})
進行
端末はcmake.
コマンドでMakefile
を生成する.左側のブラウザウィンドウから表示されます.このファイルに加えて、CMakeFiles
ディレクトリおよびサブファイル、cmake_install.cmake
ファイルおよびCMakeCache.txt
ファイルが生成される.
次に、端末ではmake
コマンドを使用してプログラムを構築する.opencvTest
という実行可能ファイルが生成されます.
実行
端末では./opencvTest
コマンドでプログラムを実行する.これにより、私たちが入れた画像がウィンドウを開いて実行されているのが見えます.
もっと簡単な方法があるそうです.以降のリリースでは、OpenCVをこのメソッドとともにデバッグしてみます.
参考資料
$ gcc -v
$ sudo apt update
$ sudo apt install build-essential gdb
プロジェクトフォルダとC++ファイルを作成して、C++コードをテストします.筆者は
cppTest
ディレクトリを作成し、cppTest.cpp
ファイルを作成しました.$ mkdir cppTest
$ cd cppTest
$ code .
参照として、code
がVSコードを開き、code .
がその位置でVSコードを開き、code 파일명
がそのファイルを開くか開かないかを命令すると、生成される.開いているVSコードの左側のファイルブラウザ(ドッキングステーション上部のドキュメントアイコンをクリック-New Fileアイコンをクリック)に
cppTest.cpp
ファイルを追加し、以下の簡単なコードを入力して保存します.#include <iostream>
using namespace std;
int main() {
cout << "Hello C++!" << endl;
}
3.構築と実行
構築と実行を開始します.
まず、上部のメニューバーで、「ターミナル」-「デフォルト生成タスクの構成」をクリックします.[C/C++:g++アクティブファイル構築]を選択します.
選択すると同時にtasks.json
ファイルが作成され、左側のファイルブラウザで同じプロジェクトフォルダに作成されていることがわかります.このファイルには、コンパイラのコンストラクション設定が含まれています.
次に、cppTest.cpp
ファイルをクリックしてファイルを選択し、そこでCtrl + Shift + B
に構築します.構築が完了すると、関連マニュアルが下部のターミナルウィンドウに表示され、左側のファイルブラウザでcppTest
という実行可能ファイルが生成されます.
下部端末ウィンドウで+
ボタンをクリックし、bash
を選択してbash端末を作成します.このプロセスはUbuntuの端末でも同様に動作する.端末がVSCodeに表示されないか、ウィンドウが閉じている場合は、上部メニューバー-[View]-[Terminal]に端末を再表示できます.
現在作成されている実行可能ファイルを端末で実行します.$ ./cppTest
では、コードの内容が実行されていることを確認できます.
4.デバッグ
上部メニューバーで[Run]-[Add Configuration...]選択次のウィンドウで、[C++(GDB/LDB)]-[g++アクティブファイル構築とデバッグ]を選択します.
選択するとlaunch.json
ファイルが作成され、左側でデバッグウィンドウが有効になります.このファイルはデバッガの設定を行うファイルです.デバッグ時に変数やCall Stackなどが表示されます.
個人的にはVisual Studioよりデザインの方が綺麗だと思いますが…?
主関数をブレークポイントなしでデバッグするには、StopAtEntry
をtrue
に変換して保存します.
その後、cppTest.cpp
に戻り、F5
を押すか、上部メニューバーで[Run]-[Start Debugging]を押すか、左側のペインで◆ボタンを押してデバッグを開始します.
上記で新しく作成したアイコンで、2番目をクリックするか、F10
を押して対応する実行ラインに移動した後、デフォルトの実行方法は他のデバッグと同じです.
その他の設定変更などの詳細や理論は、一番下のリンクを参照してください.
5.OpenCVコードの作成
今回は、OpenCVを使用したC++コードを作成して実行します.
プロセスを行うためにはcmakeをインストールする必要があります.cmake --version
を実行中にバージョン情報が出力されなかったり、対応するコマンドが見つからなかったりした場合は、まずsudo apt install cmake
を使用してインストールを行います.
5.1. プロジェクトフォルダの作成
最初の手順と同じ方法でプロジェクトフォルダとC++ファイルを作成します.$ mkdir opencvTest
$ cd opencvTest
$ code .
cppファイル名はopencvTest.cpp
です.入力コードは次のとおりです.次のコードは、画像の内容を開くだけです.
次のスクリーンショットでは、コードの2行目は#include "/usr/include/opencv2/opencv.hpp"
であり、#include "opencv2/opencv.hpp"
に実行することができる.#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("lenna.bmp");
if (img.empty()) {
cerr << "Image laod failed!" << endl;
return -1;
}
namedWindow("image");
imshow("image", img);
waitKey();
destroyAllWindows();
}
また、このフォルダには、サンプル用の画像ファイルも含まれています.画像にはlenna.bmp
のファイル名があります.
CMakeList.txtの作成
プロジェクトフォルダにCMakeLists.txt
ファイルを作成します.ファイル名は正確に指定する必要があります.中身の仕組みは以下の通りです.cmake_minimum_required(VERSION <본인 cmake의 버전>)
project(<프로젝트 폴더 이름>)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(<프로젝트 폴더 이름> <파일 이름>.cpp)
target_link_libraries(<프로젝트 폴더 이름> ${OpenCV_LIBS})
したがって、私たちの例を変えると、このようになります.cmake_minimum_required(VERSION 3.10)
project(opencvTest)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(opencvTest opencvTest.cpp)
target_link_libraries(opencvTest ${OpenCV_LIBS})
進行
端末はcmake.
コマンドでMakefile
を生成する.左側のブラウザウィンドウから表示されます.このファイルに加えて、CMakeFiles
ディレクトリおよびサブファイル、cmake_install.cmake
ファイルおよびCMakeCache.txt
ファイルが生成される.
次に、端末ではmake
コマンドを使用してプログラムを構築する.opencvTest
という実行可能ファイルが生成されます.
実行
端末では./opencvTest
コマンドでプログラムを実行する.これにより、私たちが入れた画像がウィンドウを開いて実行されているのが見えます.
もっと簡単な方法があるそうです.以降のリリースでは、OpenCVをこのメソッドとともにデバッグしてみます.
参考資料
$ ./cppTest
上部メニューバーで[Run]-[Add Configuration...]選択次のウィンドウで、[C++(GDB/LDB)]-[g++アクティブファイル構築とデバッグ]を選択します.
選択すると
launch.json
ファイルが作成され、左側でデバッグウィンドウが有効になります.このファイルはデバッガの設定を行うファイルです.デバッグ時に変数やCall Stackなどが表示されます.個人的にはVisual Studioよりデザインの方が綺麗だと思いますが…?
主関数をブレークポイントなしでデバッグするには、
StopAtEntry
をtrue
に変換して保存します.その後、
cppTest.cpp
に戻り、F5
を押すか、上部メニューバーで[Run]-[Start Debugging]を押すか、左側のペインで◆ボタンを押してデバッグを開始します.上記で新しく作成したアイコンで、2番目をクリックするか、
F10
を押して対応する実行ラインに移動した後、デフォルトの実行方法は他のデバッグと同じです.その他の設定変更などの詳細や理論は、一番下のリンクを参照してください.
5.OpenCVコードの作成
今回は、OpenCVを使用したC++コードを作成して実行します.
プロセスを行うためにはcmakeをインストールする必要があります.cmake --version
を実行中にバージョン情報が出力されなかったり、対応するコマンドが見つからなかったりした場合は、まずsudo apt install cmake
を使用してインストールを行います.
5.1. プロジェクトフォルダの作成
最初の手順と同じ方法でプロジェクトフォルダとC++ファイルを作成します.$ mkdir opencvTest
$ cd opencvTest
$ code .
cppファイル名はopencvTest.cpp
です.入力コードは次のとおりです.次のコードは、画像の内容を開くだけです.
次のスクリーンショットでは、コードの2行目は#include "/usr/include/opencv2/opencv.hpp"
であり、#include "opencv2/opencv.hpp"
に実行することができる.#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("lenna.bmp");
if (img.empty()) {
cerr << "Image laod failed!" << endl;
return -1;
}
namedWindow("image");
imshow("image", img);
waitKey();
destroyAllWindows();
}
また、このフォルダには、サンプル用の画像ファイルも含まれています.画像にはlenna.bmp
のファイル名があります.
CMakeList.txtの作成
プロジェクトフォルダにCMakeLists.txt
ファイルを作成します.ファイル名は正確に指定する必要があります.中身の仕組みは以下の通りです.cmake_minimum_required(VERSION <본인 cmake의 버전>)
project(<프로젝트 폴더 이름>)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(<프로젝트 폴더 이름> <파일 이름>.cpp)
target_link_libraries(<프로젝트 폴더 이름> ${OpenCV_LIBS})
したがって、私たちの例を変えると、このようになります.cmake_minimum_required(VERSION 3.10)
project(opencvTest)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(opencvTest opencvTest.cpp)
target_link_libraries(opencvTest ${OpenCV_LIBS})
進行
端末はcmake.
コマンドでMakefile
を生成する.左側のブラウザウィンドウから表示されます.このファイルに加えて、CMakeFiles
ディレクトリおよびサブファイル、cmake_install.cmake
ファイルおよびCMakeCache.txt
ファイルが生成される.
次に、端末ではmake
コマンドを使用してプログラムを構築する.opencvTest
という実行可能ファイルが生成されます.
実行
端末では./opencvTest
コマンドでプログラムを実行する.これにより、私たちが入れた画像がウィンドウを開いて実行されているのが見えます.
もっと簡単な方法があるそうです.以降のリリースでは、OpenCVをこのメソッドとともにデバッグしてみます.
参考資料
$ mkdir opencvTest
$ cd opencvTest
$ code .
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("lenna.bmp");
if (img.empty()) {
cerr << "Image laod failed!" << endl;
return -1;
}
namedWindow("image");
imshow("image", img);
waitKey();
destroyAllWindows();
}
cmake_minimum_required(VERSION <본인 cmake의 버전>)
project(<프로젝트 폴더 이름>)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(<프로젝트 폴더 이름> <파일 이름>.cpp)
target_link_libraries(<프로젝트 폴더 이름> ${OpenCV_LIBS})
cmake_minimum_required(VERSION 3.10)
project(opencvTest)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(opencvTest opencvTest.cpp)
target_link_libraries(opencvTest ${OpenCV_LIBS})
Reference
この問題について([C++]Ubuntu+VSコード環境でC+、OpenCVコードをコンパイルする), 我々は、より多くの情報をここで見つけました https://velog.io/@717lumos/Ubuntu-Ubuntu-VS-Code-환경에서-C-OpenCV-코드-컴파일하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol