SLAM 学習 - cmake の最初のプロジェクトを開始する

序文

昔と変わらず、自分の学習過程を記録するというものです以前は主にPythonを使ってディープラーニングをしていましたが、最近は仕事でC++のライブラリを色々使う必要があるので、Cmakeを使って自分自身の学習過程を記録していきます。コードをコンパイルします。
ここに画像の説明を挿入

1. プロジェクトの構造

1.1 ファイルストレージ構造


.
|—— CMakeLists.txt
|—— example // 存放例子代码
|── include // 存放 比如宏,结构定义,函数定义,类型定义
	|—— *.h
|—— lib // 存放编译时产生的链接库
|── src // 存放源文件
    |── CMakeLists.txt
    └── *.cpp
|—— main.cpp
.

1.2 ファイルパスの説明

cmake によってコンパイルされるファイル構造は、一般に比較的固定されています。模倣して独自のファイル構造を作成することができます。簡単に説明します。

  1. srcフォルダー。通常は*.cppファイルの種類を保存します。
  2. libフォルダー。通常、コンパイル プロセス中に生成されたダイナミック リンク ライブラリが保存されます。
  3. includeフォルダー。通常は*.hファイルを保存します。
  4. 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 番目のパラメータは生成されたライブラリの種類です。

おすすめ

転載: blog.csdn.net/CharmsLUO/article/details/126691397