s2学习日记

在Clion使用s2库时遇到编译错误,因缺少absl库。通过在CMakeLists.txt文件中添加absl库依赖并更新配置后,成功解决。同时介绍了在编译环境中查找已链接库中特定函数源码的方法,通过跳转到定义功能快速定位源码。
  1. clion中自己的编译环境(atmosphere)中,运行s2中terms_point.cc文件报错,缺少absl库。

解决:对于cmake编译构建的工程,主要还是在CMakeLists.txt文件中,所以缺少的absl库也可以在该文件中解决。

首先打开自己的工程下的CMakeLists.txt文件,查看最后的target变量

然后打开下载的s2源文件,在解压后的文件(s2 geometry-master)中,打开当前工程文件,点击查看当前工程文件下的CMAkeLists.txt文件,ctrl+f搜索absl,首先可以找到一个 find_package(absl REQUIRED) 命令,查找到这个包,然后继续搜索,找到target_link_libraries中,然后对比自己的工程目录下,发现缺少

 

    absl::base

    absl::btree

    absl::config

    absl::core_headers

 

    absl::dynamic_annotations

    absl::endian

    absl::fixed_array

    absl::flat_hash_map

    absl::flat_hash_set

    absl::hash

    absl::inlined_vector

    absl::int128

    absl::log_severity

    absl::memory

    absl::span

    absl::str_format

    absl::strings

    absl::type_traits

absl::utility

将其对应s2 geometry-master工程CMakeLists.txt中,在target_link_libraries的位置,粘贴到自己的工程CmakeLists.txt中,然后clion右上角会显示更新,点击更新,再在终端输入cmake ..   make  构建,构建完成后,问题即可解决。

2、如何在编译的完成的环境中,找到某一函数对应的源码

在自己编译完成的环境中 .h文件对应的实现都已经编译为了动态库,是二进制文件,不能够直接打开查看,(如/home/he/atmosphere/cmake-build-debug/src的ec s2文件)。

所以要想查看,就要到下的源压缩包解压的文件中查找,以ecCodes为例,首先找到其对应的下载解压位置,在解压文件(/home/he/桌面/ecCodes/eccodes-2.25.0-Source)中打开终端,打开自己的example中的一个文件,然后ctrl+点击要查找的函数,就会自动弹出窗口,转到定义(无需再左侧的.c文件中一个个找),在ctrl+点击自己的要查找的函数,即可一直查找到函数的逐层实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值