[英]Include Eigen library for Xcode project via CMake/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.