[英]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.