Win10环境下用CMake编译项目遇到与Eigen库相关的问题

原作者提供的CMakeLists.txt中

Eigen库是头文件库,不用编译也可以使用。如果Win系统的环境变量没有设置,也没有编译Eigen,find_package语句会找不到Eigen。

find_package(Eigen3 3.3.4 REQUIRED NO_MODULE)
..中间省略..
target_link_libraries(fdr ${OpenCV_LIBS} Eigen3::Eigen GCoptimization Superpixel)

解决方法:

  1. 删掉find_package(Eigen3 3.3.4 REQUIRED NO_MODULE)
  2. 删掉target_link_libraries里面的 Eigen3::Eigen
  3. 增加语句set(Eigen3_DIR “C:/local/eigen-3.3.4”)
    include_directories(${Eigen3_DIR})
    //双引号内的路径设置成你电脑上Eigen库的位置

如果你还没有编译过Eigen且环境变量中没有添加,那么修改CMakeLists.txt如下:

cmake_minimum_required(VERSION 3.9)
project(ProjectName)
set(CMAKE_CXX_STANDARD 11)
// set EIGEN_DIR variable to Eigen Library Path
set(EIGEN_DIR “C:\Eigendir\Eigen”)
// include the directory
include_directories(${EIGEN_DIR})
add_executable(ProjectName main.cpp)

fatal error C1083: 无法打开包括文件: “Eigen\Dense”: No such file or directory

Eigen库的包含路径写错了,由“C:\local\eigen-3.3.4\Eigen”调成父目录"C:\local\eigen-3.3.4"

target_link_libraries :Targets may link only to libraries. CMake is dropping the item.

猜你喜欢

转载自blog.csdn.net/rdw1246010462/article/details/126853051