拿Sophus库为例:

find_package(Sophus REQUIRED)

include_directories(${Sophus_INCLUDE_DIRS})

target_link_libraries(useSophus ${Sophus_LIBRARIES})

我们怎么知道要连接Sophus_INCLUDE_DIRS,Sophus_LIBRARIES,而不是SOPHUS_INCLUDE_DIRS,SOPHUS_LIBRARIES或其他,其实

find_package主要是找到.cmake文件,然后这些变量在.cmake 里面定义了,我们看Sophus/SophusConfig.cmake:

# Sophus source dir

set( Sophus_SOURCE_DIR "/home/xxx/slamcode/ch4/Sophus")

################################################################################

# Sophus build dir

set( Sophus_DIR "/home/xxx/slamcode/ch4/Sophus")

################################################################################

set( Sophus_INCLUDE_DIR  "/home/xxx/slamcode/ch4/Sophus;/usr/include/eigen3" )

set( Sophus_INCLUDE_DIRS  "/home/xxx/slamcode/ch4/Sophus;/usr/include/eigen3" )

set( Sophus_LIBRARIES    "/home/xxx/slamcode/ch4/Sophus/libSophus.so" )

set( Sophus_LIBRARY      "/home/xxx/slamcode/ch4/Sophus/libSophus.so" )

set( Sophus_LIBRARY_DIR  "/home/xxx/slamcode/ch4/Sophus" )

set( Sophus_LIBRARY_DIRS "/home/xxx/slamcode/ch4/Sophus" )

然后就知道那些变量可以用了吧


cmake find_package 中,include_directories,target_link_libraries 的值怎么知道?的更多相关文章

  1. 直接在CMake项目中编译GoogleTest和GoogleMock作为项目的一部分

    直接在CMake项目中编译GoogleTest和GoogleMock作为项目的一部分 本文是关于如何将GoogleTest和GoogleMock在没有预先编译安装在机器的情况下,直接在项目中作为项目的 ...

  2. cmake find_package 命令

    1. find_package(<Name>)命令首先会在模块路径中寻找 Find<name>.cmake,这是查找库的一个典型方式. 具体查找路径依次为CMake:  变量$ ...

  3. 使用JS,获取URL中指定参数的值

    /** * 获取URL中指定参数的值 * * @param name 参数名称 * @returns */ function getQueryString(name) { var reg = new ...

  4. 取出session中的所有属性与值的方法

    如果你想取出session中所有的属性和值,可以通过getAttributeNames()方法来实现,具体代码如下 //获取session HttpSession session = request. ...

  5. php usort 按照数组中的某个键值排序

    //php usort 按照数组中的某个键值排序 如果第一个参数小于第二个参数 -> 返回小于0的整数如果第一个参数等于于第二个参数 -> 返回等于0的整数如果第一个参数大于于第二个参数 ...

  6. 更改mysql中当前auto_increment的值的方法

    最近给自己网站更改mysql中当前auto_increment的值 如果在mysql中一个表test中的ID字段设为auto_increment插入两条记录后ID=2,这时删除1条记录,再插入一条变成 ...

  7. 关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)

    关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其... 方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999 ...

  8. mysql中数据类型的取值范围

    mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介绍,如下: 1.bigint 从 -2^63 (-9223372036854775808) 到 2^ ...

  9. Linq 中按照多个值进行分组(GroupBy)

    Linq 中按照多个值进行分组(GroupBy) .GroupBy(x => new { x.Age, x.Sex }) group emp by new { emp.Age, emp.Sex ...

随机推荐

  1. 神州数码广域网PPP封装PAP认证配置

    实验要求:熟练掌握PAP认证配置(单向.双向) 拓扑如下: 单向 R1(验证方) enable 进入特权模式 config 进入全局模式  hostname R1 修改名称 interface s0/ ...

  2. net core 解除上传大附件的限制

    1.对于使用自带服务器kernal的情况下,只需要在对应的action上添加属性 DisableRequestSizeLimit [HttpPost] [DisableRequestSizeLimit ...

  3. 条件分支语句(SWICH语句)

    语法 swich(条件表达式){ Case 表达式: 语句……. Break; Case 表达式: 语句……. Break; Case 表达式: 语句……. Break; default: 语句……. ...

  4. Centos7 firewall开放3306端口

    目录 Centos7 firewall开放3306端口 1. 查看防火墙状态 2. 关闭防火墙firewall 3. 关闭防火墙firewall后开启 4. 开启端口 5. 重启防火墙 6. 常用命令 ...

  5. imp导入时 出现IMP-00017:由于 ORACLE 错误 6550, 以下语句失败: 解决方法

    cmd命令下--执行imp命令时,出现IMP-00017:由于 ORACLE 错误 6550, 以下语句失败: 解决办法:在imp命令里加入 statistics=none (不导入数据库统计信息) ...

  6. jdk1.7安装和配置

    jdk1.7 安装引用 https://jingyan.baidu.com/article/ff41162596a77912e4823716.html

  7. html走马灯效果

    实现跑马灯的方法很多,其中最简单的是采用一句Html代码来实现,我们在需要出现跑马灯效果的地方插入“<marquee>滚动的文字</marquee>”语句,它的效果如下所示: ...

  8. Javascript var 和 let 的区别

    Javascript var 和 let 的区别 var 是函数块的全局变量. let 是代码块的局部变量. let 变量不会提升,如果先使用后定义会 undefind. 参考: https://de ...

  9. MyTomcat(手写服务器)

    Tomcat 是非常流行的 Web Server,它还是一个满足 Servlet 规范的容器.那么想一想,Tomcat 和我们的 Web 应用是什么关系? 从感性上来说,我们一般需要把 Web 应用打 ...

  10. Asp.net:上传文件超过了最大请求长度

    错误消息:超过了最大请求长度    错误原因:asp.net默认最大上传文件大小为4M,运行超时时间为90S.   解决方案 1. 修改web.config文件可以改变这个默认值            ...