cmakeの最初のプロジェクトを開始する
序文
昔と変わらず、自分の学習過程を記録するというものです以前は主にPythonを使ってディープラーニングをしていましたが、最近は仕事でC++のライブラリを色々使う必要があるので、Cmakeを使って自分自身の学習過程を記録していきます。コードをコンパイルします。
1. プロジェクトの構造
1.1 ファイルストレージ構造
.
|—— CMakeLists.txt
|—— example // 存放例子代码
|── include // 存放 比如宏,结构定义,函数定义,类型定义
|—— *.h
|—— lib // 存放编译时产生的链接库
|── src // 存放源文件
|── CMakeLists.txt
└── *.cpp
|—— main.cpp
.
1.2 ファイルパスの説明
cmake によってコンパイルされるファイル構造は、一般に比較的固定されています。模倣して独自のファイル構造を作成することができます。簡単に説明します。
src
フォルダー。通常は*.cpp
ファイルの種類を保存します。lib
フォルダー。通常、コンパイル プロセス中に生成されたダイナミック リンク ライブラリが保存されます。include
フォルダー。通常は*.h
ファイルを保存します。example
フォルダー。通常はデモ コードを保存します。
2.CMakeLists.txt
2.1 CMakeLists.txt ファイル形式
cmake_minimum_required(VERSION 3.23)
project(visualizeGeometry)
set(CMAKE_CXX_STANDARD 14)
set(LIBRARY_OUTPUT_PATH ${
PROJECT_SOURCE_DIR}/lib)
add_executable(visualizeGeometry main.cpp)
find_package(Pangolin REQUIRED)
include_directories(${
Pangolin_INCLUDE_DIRS}) // 头文件在该路径下
target_link_libraries(visualizeGeometry ${
Pangolin_LIBREARIES})
2.2 コマンドの概要
cmake_minimum_required(VERSION 3.23)
: 最小バージョンが必要です。インストールしたバージョンに応じて使用できる必要があります。
set(CMAKE_CXX_STANDARD 14)
: C++ 標準が使用されるため、設定する必要はありません。
project(visualizeGeometry)
:プロジェクト名。
add_executable(visualizeGeometry main.cpp)
: ファイル実行出力。
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
: 出力したライブラリファイルをコードソースパス配下のlibフォルダに設定します。
find_package(Pangolin REQUIRED)
: Pangolin のライブラリを検索します。REQUIRED はライブラリを使用する必要があることを意味し、そうでない場合はエラーが報告されます。
include_directories(${Pangolin_INCLUDE_DIRS})
: 見つかったライブラリ パスを現在のファイル パスに渡します。
target_link_libraries(visualizeGeometry ${Pangolin_LIBREARIES}):
このライブラリをターゲットファイルに接続し、find_package, include_directories,target_link_libraries
これら 3 つは通常一緒に使用されます。
add_library
: ソース ファイルはダイナミック ライブラリとスタティック ライブラリにパッケージ化されており、最初のパラメータは生成されたライブラリの名前、2 番目のパラメータは生成されたライブラリの種類です。