本文主要讲解“如何在CMakeLists.txt文件中包含Eigen”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“如何在CMakeLists.txt文件中包含Eigen”!
首先,Eigen只有头文件(只有头文件),只需要设置一个包含路径。有以下方法:
00-1010 find _ package(需要EIGEN 3)使用此方法,将自动在系统的cmake路径和之前文件中设置的cmake的包含路径中找到EIGEN
列表(追加CMAKE _ MODULE _ PATH $ { project _ source _ dir }/././cmake _ modules)可以通过list命令将指定的路径添加到cmake _ module _ path的列表中;
00-1010如果find_package()找不到你指定的Eigen版本,或者随意切换版本,只需要设置EIgen的包含路径;
应该注意的是,包含的路径是:EIGEN3_INCLUDE_DIR.
因此,包含路径设置如下:
Set(eigen 3 _ include _ dir ' $ env { eigen 3 _ include _ dir } ')#设置包含路径。
IF(NOTEIGEN3_INCLUDE_DIR)#添加提示消息
消息(致命_错误'请报告环境变量EN3 _ INCLUDE _ dirtheinclude director yofyoureigen 3安装。)
ENDIF()
Include _ directory(' $ { eigen 3 _ Include _ dir } ')#在项目3的包含路径中包含此路径。DIRS和目录
这里有一个问题。写包含路径的时候,不小心弄错了,加了个S,所以包含路径没有成功。一个简单的测试如下,它被添加到CmakeLIsts.txt文件中
set(EIGEN _ INCLUDE _ DIRS '/usr/local/INCLUDE/INCLUDE/EIGEN 3 ')
消息(${eigen_INCLUDE_DIRS})将没有任何输出。如果有,可能是其他库会设置eigen的包含路径。例如,当有一个PCL库时,如果之前用find_package(PCL 1.9 REQUIRED)找到了PCL库,那么打印EIGEN的包含路径,就会打印出来。
/usr/include/eigen3这是因为在PCL中存在eigen集的包含路径。使用消息(${PCL_INCLUDE_DIRS})打印出PCL的包含路径,如下所示:
/usr/local/PCL 1.10/include/PCL-1.9
/usr/include/eigen 3/usr/include/usr/include/PCL-1.9
/usr/include/ni/usr/include/VTK-6.2/usr/include/freetype 2/usr/include/x86 _ 64-Linux-GNU/freetype 2
/usr/include/x86 _ 64-Linux-GNU/usr/include/jsoncpp但如果设置为
set(eigen _ include _ dir '/usr/local/include/include/eigen 3 ')可以成功设置。
至此,相信大家对“如何在CMakeLists.txt文件中包含Eigen”有了更深的理解,那么就来做一些实际的工作吧!这是网站。更多相关内容,可以去相关渠道查询,关注我们,继续学习!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154127.html