拿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. Js强制转换

    Js强制转换 ParseInt(a,b):整型 只能放字符串,b为基数.声明前面的数是几进制.因为只能放字符串,所以无论放什么都转换为字符串: 如果String以0x开头则为16进制的整数: ‘036 ...

  2. 面向对象+JAVA基础

    泛泛的研究了面向对象的前五章,感觉没有代码的参照理解的知识看过就忘,所以又在推荐下开始了JAVA基础,希望不会鄙视我目前么有一本书能完整看完的记录... public class LeapYear { ...

  3. 《Linux内核原理与分析》第七周作业

    课本:第六章 进程的描述和进程的创建 操作系统内核实现操作系统的三大管理功能 进程管理 内存管理 文件系统 在操作系统原理中,通过进程控制块PCB描述进程:在Linux内核中,通过一个数据结构stru ...

  4. struts2 自定义异常拦截器配log4j

    log4j.rootLogger = debug,stdout,F log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.app ...

  5. Xshell添加ssh隧道SOCKS代理

    Xshell是一个功能强大的终端模拟器,支持SSH,SFTP.TELNET.RLOGIN和SERIAL 下载地址:http://www.netsarang.com/products/xsh_overv ...

  6. java_免费视频课程汇总

    xml使用场景    各种配置文件    用于用户界面的开发    传输数据:ajax 这个可能过时,因为程序员更喜欢将xml用json来代替    web service:这些老式的web serv ...

  7. centos查看系统版本信息

    1.查看版本文件名称 ll /etc/*centos* 2.显示系统版本号 cat /etc/centos-release

  8. 如何查看k8s存在etcd中的数据(转)

    原文 https://yq.aliyun.com/articles/561888 一直有这个冲动, 想知道kubernetes往etcd里放了哪些数据,是如何组织的. 能看到,才有把握知道它的实现和细 ...

  9. 6.3.4 新的_Bool类型

    如果把其他非零数值赋给_Bool类型的变量,该变量会被设置为1.这反映了C把所有的非零值都视为真. input_is_good = (scanf("%ld", &num) ...

  10. python:推导式套路

    推导式套路 列表推导式为例的推导式详细格式,同样适用于其他推导式 variable = [out_exp_res for out_exp in input_list if out_exp == 2] ...