gpt4 book ai didi

c++ - 如何在 Windows 上的 CMakelist.txt 中包含 Eigen 库

转载 作者:行者123 更新时间:2023-12-05 03:49:28 41 4
gpt4 key购买 nike

我正在尝试将 Eigen 库包含到我的 CMakelist.txt 中。我遵循了 Eigen Docs 上的 CMake 说明,但我使用的是 Jetbrain 的 Clion 而不是直接使用 CMake。所以我不知道如何使用提供的 Cmake 命令。我已经进行了研究,但我对 CMake 的编写 Cmakelists 没有很好的理解,所以我还没有得到任何工作。

这就是我一直用来测试库的 serup 的东西:

cmake_minimum_required(VERSION 3.17)
project(Eigen_Test)
set(CMAKE_CXX_STANDARD 20)

find_package (Eigen3 3.3 REQUIRED NO_MODULE)

add_executable (example example.cpp)
target_link_libraries (example eigen)

add_executable(Eigen_Test main.cpp)

这是我收到的错误:

  CMake Error at CMakeLists.txt:5 (find_package):
Could not find a package configuration file provided by "Eigen3" (requested
version 3.3) with any of the following names:

Eigen3Config.cmake
eigen3-config.cmake

Add the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or set
"Eigen3_DIR" to a directory containing one of the above files. If "Eigen3"
provides a separate development package or SDK, be sure it has been installed.

我研究了很多方法来包含这个库,但大多数方法都使用我不熟悉的命令行。此外,我没有 Eigen3Config.cmake,我只有 Eigen3Config.cmake.in 文件。我假设有一些我一定不知道的安装技巧。如果有人有办法严格使用 CMakelist.txt 包含 clion,我将不胜感激。

最佳答案

这里是一个在 Windows 上使用 CMake 的工作示例,使用带有 mingw32-make.exe 和 g++.exe 编译器的 MinGW 环境。

CMakeLists.txt:

# The following lines depends on your project :
cmake_minimum_required(VERSION 3.19)
project(PROJECT_NAME)
set(CMAKE_CXX_STANDARD 17)

# You have to set these variables as Windows environment variables:
# EIGEN3_INCLUDE_DIR <- %EIGEN3_ROOT%
# EIGEN3_DIR <- %EIGEN3_ROOT%\cmake
#
# EIGEN3_INCLUDE_DIR: variable needed for file %EIGEN3_ROOT%/cmake/FindEigen3.cmake
#
# CMAKE_MODULE_PATH: Search path for the module Eigen3 to be loaded by find_package
#
SET( EIGEN3_INCLUDE_DIR "$ENV{EIGEN3_INCLUDE_DIR}" )
SET( CMAKE_MODULE_PATH "$ENV{EIGEN3_DIR}" )

find_package( Eigen3 3.3 REQUIRED )
# include_directories is needed for the compiler to know where looking for Eigen3 header files to be included
include_directories( ${EIGEN3_INCLUDE_DIR} )

add_executable(PROJECT_NAME FILES...)

然后您可以调用 Eigen3 库,例如:

#include <Eigen/Core>

关于c++ - 如何在 Windows 上的 CMakelist.txt 中包含 Eigen 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63947874/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com