CMakeLists链接absl

安装

https://blog.csdn.net/k1419197516/article/details/130118003

链接

1.查找 Abseil 包:
使用 find_package 命令来查找 Abseil 库。确保在运行 CMake 前 Abseil 已经被正确安装,且其 CMake 配置文件可被 CMake 找到。

find_package(absl REQUIRED)

2.链接 Abseil 库:
使用 target_link_libraries 将 Abseil 库链接到你的目标(比如一个可执行文件或库)。

target_link_libraries(your_target_name absl::base absl::strings ...)

或者

  target_link_libraries(your_target_name ${abseil_cpp_LIBRARIES})

替换 your_target_name 为你的目标名称。absl::base、absl::strings 等是 Abseil 库中你需要链接的具体组件,根据你的需求选择。
3.处理 Abseil 的依赖:
如果 Abseil 的使用需要特定的编译器标志或其他依赖项,确保这些也被正确处理。
4.(可选)指定 Abseil 的安装路径:
如果 Abseil 安装在非标准路径下,你可能需要在运行 CMake 之前设置 CMAKE_PREFIX_PATH 来指定 Abseil 的安装路径。

set(CMAKE_PREFIX_PATH "/path/to/abseil")

请根据你的项目和系统环境相应地调整以上步骤。一旦你更新了 CMakeLists.txt 文件,记得重新运行 CMake 来配置你的项目。这些指令需要放置在你的 CMakeLists.txt 文件中合适的位置,通常在定义项目目标(如可执行文件或库)之前。

删除absl

1.如果使用了包管理器安装:

  • 如果你是通过系统的包管理器(如 apt、yum、dnf 等)安装的 Abseil,可以使用相同的包管理器来卸载它。例如,在基于 Debian 的系统上,你可以使用:
sudo apt-get remove --purge libabsl-dev
  • 请替换为你实际安装时使用的包名。

2.如果是从源代码手动安装:

  • 如果你是从源代码编译并安装 Abseil,通常需要手动删除安装的文件。这可能包括库文件、头文件和其他相关文件。
  • 前往你编译 Abseil 时使用的构建目录,如果你使用了 make install 命令,可以尝试 make uninstall(只有当 Abseil 的 CMakeLists.txt 支持此操作时才可用)。- 如果 make uninstall 不可用,你需要手动定位并删除相关文件。这些文件通常安装在 /usr/local/lib、/usr/local/include 等目录。具体位置取决于你安装时指定的前缀。

3.更新动态链接器缓存:

在删除库文件之后,运行 ldconfig 以更新动态链接器的缓存:

sudo ldconfig

Q&A

undefined reference to `absl::StrAppend

1.未正确链接 Abseil 库:确保在你的 CMake 配置中正确链接了 Abseil 库。这通常是通过 target_link_libraries 在你的 CMakeLists.txt 中实现的。例如:

target_link_libraries(perception_fusion absl::strings absl::numbers ...)

这里 absl::strings 和 absl::numbers 是 Abseil 库中的相关组件,需要根据你的项目需求进行选择。

2.多个版本冲突:如果系统中安装了多个版本的 Abseil 库,可能会导致版本冲突。确保你的项目链接到正确版本的库。

3.动态/静态链接问题:如果 Abseil 库以静态库的形式编译,但你的项目尝试以动态库的方式链接,可能会发生这种错误。检查你的 Abseil 库是如何编译的,并确保你的项目以相同的方式链接它。
容易忽视的问题!!!!!!
4.编译器兼容性问题:这个错误也可能是由于编译器版本或设置不兼容造成的。确保你使用的编译器版本与用于编译 Abseil 库的版本相匹配。

5**.确保 Abseil 库已正确安装**:如果 Abseil 库没有正确安装或路径设置不正确,也可能导致这类错误。检查 Abseil 库是否已正确安装在系统中,并且其路径已正确添加到项目中。

解决此问题通常需要检查你的 CMake 配置,确保所有链接设置正确,以及确保使用了与 Abseil 库兼容的编译器和设置。

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值