簡體   English   中英

CMakeLists.txt 中的特征庫設置

[英]Eigen library setup in CMakeLists.txt

我有一個這樣的項目文件結構:

.
├── CMakeLists.txt
├── deps
│   ├── cxxtest
│   └── eigen
├── main.cpp
└── tests
    ├── CMakeLists.txt
    └── hello_world.cpp

兩個 CMakeLists.txt 文件和兩個 .cpp 文件是

在此處輸入圖片說明

所以我的問題是為什么我必須將 Eigen 庫設置放在 CMakeLists.txt 文件的頂層,如下以使頂層 .cpp 文件工作,即找到 Eigen/Dense 標頭,但較低級別的 .cpp無論 CMakeLists.txt 文件的頂層和底層是否具有以下設置,都將始終有效?

find_package(Eigen3 3.3 REQUIRED NO_MODULE)
target_link_libraries(proj Eigen3::Eigen)

我猜您想在項目目錄樹中使用本地 Eigen 庫,即deps/eigen 最簡單的方法是使用add_subdirectory像往常一樣添加 Eigen 子目錄。 您可能還需要將目標庫從Eigen3::Eigen更改為eigen 主要的CMakeLists.txt看起來像這樣:

cmake_minimum_required(VERSION 3.14)
project(PROJECT)

add_subdirectory(deps/eigen)
add_subdirectory(tests)

set(SRC_LIST main.cpp)
add_executable(proj ${SRC_LIST})
target_link_libraries(proj eigen)

此外,為了使單元測試hello_world.cpp工作,您需要在tests目錄中的CMakeLists.txt中添加到 Eigen 庫的鏈接,即:

target_link_libraries(hello_world eigen)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM