ワンキーコンパイルとワンキーデバッグを実現するためのVSCODE + CMAKE + Libtorch環境構成
参照:https://blog.csdn.net/ha_ku/article/details/102625837
記事ディレクトリ
vscode + camkeを構成し、サードパーティのディープラーニングライブラリlibtorchを導入して、ワンクリックコンパイルとワンクリックcmakeを実現するプロセスを記録します。まず、サードパーティのライブラリを参照する方法の例として、vscodeとcmake、libtorch。主にvscodeの公式ドキュメントを参照してください。cmakeを構成する必要がなく、g ++を直接呼び出す場合は、Visual StudioCodeの公式ドキュメントC / C ++を直接読むことができますが、英語で書かれて いるようです。プロセスは同じですが、cmakeコマンドがg ++コマンドに置き換えられています。
vscodeのC ++環境の構成は、主に3つのjsonファイル、c_cpp_properties.json、tasks.json、launch.jsonを構成することです。3つのファイルは、C ++機能、コンパイルオプション、およびDEBUGオプションを制御します。以下では、これら3つのファイルを順番に構成しますが、構成を容易にするために、最初に新しいhelloworld.cppを作成します。
1.新しいhelloworld.cppを作成します
vscodeでフォルダーを開き、helloworld.cppファイルを作成します。このステップは、主に後続の構成ファイルを容易にするためのものです。夢の始まりは.cppで出力できます:
#include<iostream>
void main()
{
std::cout << "hello, world!" << std::endl;
}
2.c_cpp_properties.jsonファイルを構成します
この手順では、ヘッダーファイルの検索パスや事前定義など、C ++プロジェクトのさまざまなプロパティをvscodeで設定します。ここでは主にvsvodeのVisualStudioCodeの公式ドキュメントC / C ++を参照します。ここでは、UIインターフェイスを使用するか、jsonファイルを直接変更して構成できます。
F1またはctrl + shift + p(macユーザーはcmd + shift + p)でコマンドパネルを開き、次のようにeditと入力して、C / C ++:構成の編集(UI)またはC / C ++:構成の編集(JSON)を選択します。
C / C ++:構成の編集(JSON)を選択した場合、これらの2つの手順をスキップして、最終的なjsonファイルに従って独自のjsonファイルを直接変更できます。例として** C / C ++:Edit Configurations(UI)**を選択します。vscodeは次の構成インターフェイスを開きます。ここでは、主にコンパイラパスのドロップダウンメニューからコンパイラをg ++に変更します。
ここでは、IntelliSenseモードを対応するプラットフォームまたは使用するものに変更し続けます。インクルードパスは、デフォルトでワークスペース内のすべてのヘッダーファイルを導入します。ここで、サードパーティのライブラリlibtorch(my libtorchなど)を/にインポートできます。 home / kb457 /の下で、kb457は私のユーザー名です。行/ home / kb457 / libtorch / **を追加できます。以下の定義は、いくつかの事前定義された値を入力するためのものであり、ここに入力する必要はありません。
構成が完了したら、このインターフェイスを閉じると、ワークスペースの.vscodeフォルダーにc_cpp_properties.jsonが生成されます。前の手順で** C / C ++:Edit Configurations(JSON)**ファイルを選択すると、直接実行できます。次の図に従って変更します。それだけです。
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/home/kb457/libtorch/**"
],
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
3.tasks.jsonファイルを構成します
このファイルは主に、Generate(ctrl + shift + b / cmd + shift + b)を押したときに何をすべきかをvscodeに指示します。まず、作成したhelloworld.cppファイルを選択して開きます。ここで選択する必要があります。そうしないと、vscodeは、cppを生成する場合にtasks.jsonにさらに変更を加える必要があることを認識しません。次に、コマンドパネル(F1 / ctrl + shift + p / cmd + shift + p)を開き、taskと入力して、[ Tasks:Configure Default BuildTask]を選択します。
これは重要です!!!!!!!!!!!!!!!!!!!!!!!!! 1111
次に、C / C ++を選択します。g++ビルドアクティベートファイル。vscodeは、.vscodeフォルダー内のg ++コンパイル済みファイルを使用してtasks.jsonファイルを自動的に生成します。
生成されたtasks.jsonファイルは次のとおりです。ここで、labelは任意の名前に変更でき、commandは呼び出されるコマンド、argsは呼び出されたときのコマンド直後のパラメーター、グループ内のisDefaultはtrueに設定されて次のことを示します。これはデフォルトで生成されるタスクです。
g ++のみを使用する場合は、ファイルを変更する必要はありません。cmakeを使用しているため、主に次のようにコマンドと引数を変更することで、ファイルをさらに変更します。cmake .. && make -j
同時に、作業ディレクトリも設定する必要があります。コマンドを実行するには、cwdをに変更し"${workspaceFolder}/build"
ます。ワークスペースディレクトリの新しいビルドフォルダーは、生成されたファイルを格納するために使用され、最後にラベルが変更されcmake build
て、後でlaunch.jsonファイルを簡単に呼び出せるようになります。このステップで、ビルドタスクのデバッグが完了しました。デバッグする必要がない場合は、Generate vscodeを押して、本番用のビルドディレクトリでcmakeコマンドを呼び出します。ただし、CMakeLists.txtがないため、正しいファイルは生成されません。書き込み方法は最後に記載されています。launch.jsonファイルの書き込み方法について引き続き説明します。
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "cmake build",
"command": "cmake",
"args": [
"..",
"&&",
"make",
"-j"
],
"options": {
"cwd": "${workspaceFolder}/build"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
4.launch.jsonファイルを構成します
また、コマンドパネルを開き、debugと入力して、DEBUG:Open launch.json:を選択し、C ++(GDB / LLDB)を選択します。
選択した後、次のようにlaunch.jsonファイルを開きます。
ここでは、主にcmakeのプログラムによって生成されたファイルを変更します。ここでは、これが例であると想定し、デバッグを開始する前に生成タスクとデバッガーの場所を呼び出すようにvscodeに指示する2つの構成preLaunchTaskとmiDebuggerPathを追加します。preLaunchTask構成を追加しない場合、F5キーを押してデバッグするたびに最新のプログラムが自動的に生成されるわけではないため、手動で生成する必要があります。変更された構成は次のとおりです。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/stereo",
"args": ["--dataset=sceneflow"],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "cmake build",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
5.编写CMakeLists.txt
まず、使用したCMakeLists.txtを教えてください。
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(stereo)
# SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_BUILD_TYPE "Release")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "/home/kb457/libtorch")
find_package(Torch REQUIRED)
find_package(OpenCV REQUIRED)
find_package(Boost REQUIRED COMPONENTS filesystem system)
# find_package(PythonLibs REQUIRED)
if(NOT Boost_FOUND)
message("Not found Boost")
endif()
include_directories(${Boost_INCLUDE_DIRS})
add_executable(example helloworld.cpp)
target_link_libraries(stereo "${TORCH_LIBRARIES}" "${OpenCV_LIBS}" "${Boost_LIBRARIES}")
set_property(TARGET stereo PROPERTY CXX_STANDARD 11)
Visual Studio Code(VS Code)構成C / C ++環境の一般的な問題と解決策
https://blog.csdn.net/Goo_12138/article/details/83380859
整理:Visual Studio Code(vscode)C、C ++環境の構成/ C、C ++の作成と実行(主にWindows、簡単なLinux)
https://blog.csdn.net/bat67/article/details/76095813
VisualStudioコード構成C ++オペレーティング環境で、起動:プログラム '-path-'は存在しません
https://blog.csdn.net/YoungXinLer/article/details/81393343?utm_source=blogxgwz8#commentBox