找不到 Eigen3(缺少:Eigen3_DIR)

问题描述 投票:0回答:1

我正在尝试在我的项目中使用 Eigen,默认情况下我使用 CMake 构建系统。这是我的

CMakeLists.txt
:

cmake_minimum_required(VERSION 3.14)
project(math VERSION 0.0 DESCRIPTION "" LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

if(NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE "Release")
endif()

option(STATICALLY_LINK "Build for release purposes (statically link everything)" OFF)
if(STATICALLY_LINK)
    set(BUILD_SHARED_LIBS OFF)
else()
    set(BUILD_SHARED_LIBS ON)
endif()

set(CMAKE_CXX_FLAGS
    "${CMAKE_CXX_FLAGS} \
    -std=c++17 \
    -D_GLIBCXX_USE_CXX11_ABI=0 \
    -Wall \
    -Wformat \
    -Wextra \
    -Wmissing-include-dirs \
    -fdiagnostics-color=always \
    -mavx"
)

if(CMAKE_BUILD_TYPE MATCHES "Release")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
endif()

set(EIGEN3_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third-party/eigen)
set(EIGEN3_INCLUDE_DIR ${EIGEN3_DIR}/Eigen)
list(APPEND CMAKE_MODULE_PATH "${EIGEN3_DIR}/cmake")

include_directories(./)
include_directories(${EIGEN3_INCLUDE_DIR})

find_package(Eigen3 3.4.0 NO_MODULE)

set(SOURCES main.cpp)
add_executable(math ${SOURCES})
target_link_libraries(math ${Eigen_LIBRARIES})

输出:

cmake -G "MinGW Makefiles"
CMake Warning:
  No source or binary directory provided.  Both will be assumed to be the
  same as the current working directory, but note that this warning will
  become a fatal error in future CMake releases.


-- Could NOT find Eigen3 (missing: Eigen3_DIR)
-- Configuring done (0.2s)
-- Generating done (0.1s)
-- Build files have been written to: C:/Users/Alix/Desktop/math

我发现了这个建议: 无法使用 CMake 找到 Eigen3

但是,该链接声称,

转到 Eigen 源目录并运行 CMake 和安装步骤

我提取并添加为子模块的版本是:3.4.0,来自以下来源: https://gitlab.com/libeigen/eigen/-/tree/master/cmake?ref_type=heads

提交:4d54c43


VS Code 中的项目:

c++ cmake eigen3
1个回答
0
投票

我最终自己解决了这个问题。这不是什么大问题。问题是 Eigen 是一个静态链接的单个标头,因此不会像我最初想象的那样生成 DLL。感谢其他 SO 成员的努力。

© www.soinside.com 2019 - 2024. All rights reserved.