vscode のインストールと C++ 環境構成については、https: //blog.csdn.net/fangshuo_light/article/details/123635576
を参照して ください。 まず、プロジェクト ディレクトリを作成し、vscode でフォルダーを開き、その中に次のフォルダーを作成します。
- include: .h ファイルの保存に使用されます
- src: .cpp ファイルの保存に使用されます
- build: cmake で生成されたファイルのストレージ パス
- CMakeLists.txt: cmake 構成ファイル
作成されたディレクトリは次の図に示されています。
次に、入力データ x の 2 乗を計算する関数 compute を宣言および定義する comp という名前のファイルを作成し、このメソッドを main で呼び出します。そして、この機能を実現するためのディレクトリ構成と各ファイルの内容は以下のようになります。
- ディレクトリ構造:
- CMakeLists.txt の内容:
cmake_minimum_required(VERSION 3.16) # 说明要求的最低cmake版本,可不需要这行,但是每次cmake后会有warning,所以还是加上
project(MOTION_AVERAGING) # 指定工程名,可以自己随便取,不重要
set(SRC_LIST src/main.cpp src/comp.cpp) # 设置变量SRC_LIST。内容为src/main.cpp src/comp.cpp,用于后面添加src文件
set(CMAKE_BUILD_TYPE Debug) # 设置编译类型,可以是Debug,也可以是Relase
include_directories(${CMAKE_SOURCE_DIR}/include) # 添加头文件搜索路径,${CMAKE_SOURCE_DIR}指代当前cmake文件的路径,这样写后在include自己编写的头文件时就不用再加前缀include了
add_executable(ma ${SRC_LIST}) # 指定生成的可执行文件名,以及需要编译的所有cpp文件,也就是上面定义的SRC_LIST变量内容,如果添加新的文件,则修改上面变量指代的内容即可
- comp.h の内容:
int compute(int x);
- comp.cpp の内容:
# include <iostream>
# include "comp.h"
using namespace std;
int compute(int x){
return x*x;
}
- main.cpp の内容:
# include <iostream>
# include "comp.h"
using namespace std;
int main (int argc, char **argv){
int x=2;
int x2 = compute(x);
cout << "The square of " << x << " is " << x2 << endl;
return 0;
}
最初はビルド ディレクトリには何もありません。次にビルド ディレクトリに移動し、ターミナルでコンパイル コマンドを実行します。
$ cmake ..
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/motionaveraging/build
$ make
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/motionaveraging/build
Scanning dependencies of target ma
[ 33%] Building CXX object CMakeFiles/ma.dir/src/main.cpp.o
[ 66%] Building CXX object CMakeFiles/ma.dir/src/comp.cpp.o
[100%] Linking CXX executable ma
[100%] Built target ma
上記 2 つのコマンドを実行すると、ビルド ディレクトリに次の内容が生成されることがわかります。
ma は指定した生成された実行可能ファイルの名前であり、他のファイルは管理する必要はありません。次に、出力を取得するには、ターミナルで実行可能ファイルを実行するだけです。
$ ./ma
The square of 2 is 4
この出力を見ると、プロジェクトが正常にビルドされ、すべてが正常に実行されていることを示します。
このような管理の下で、プロジェクトは徐々に拡大、構築され、非常に組織化されたものになります。たとえば、ファイル データの読み取りに特別に使用される、新しい .h および .cpp ファイルの読み取りファイルを作成する場合は、それをプロジェクトに追加する必要があり、CMakeLists.txt を次のように変更するだけです。
cmake_minimum_required(VERSION 3.16)
project(MOTION_AVERAGING)
set(SRC_LIST src/main.cpp src/comp.cpp src/readfile.cpp)
set(CMAKE_BUILD_TYPE Debug)
include_directories(${CMAKE_SOURCE_DIR}/include)
add_executable(ma ${SRC_LIST})
実際には、readfile.cpp を SRC_LIST 変数に追加し、cmake と make を追加するだけです。ただしこの場合、コードを修正するたびに手動でcmakeする必要があり、非常に面倒です。ただし、vscode で task.json ファイルを設定することで自動化された cmake を実装できます。以下を参照してください: Linux での vscode を使用した C++ プロジェクト開発、CMakeLists.txt、launch.json、およびtask.jsonの共同構成には
注意が必要です