@andrew_liumuran 这个错误看和gcc有关系,你可能要按照提示,重新编译库:
@andrew_liumuran 在 livox_ROS2_driver 安装编译中报错 中说:
recompile with -fPIC
并传递 -fPIC参数,该参数含义如下
-fPIC 是 GCC 和 Clang 编译器的选项之一,表示编译生成的目标文件使用位置独立代码(Position Independent Code,PIC)格式。使用该选项可以使得生成的目标文件在被动态链接时更加灵活,也能够提高程序的安全性。
PIC 格式的目标文件可以在内存中的任何位置加载和执行,而不必依赖于特定的地址。这意味着在将多个目标文件链接为一个可执行文件时,不必为每个目标文件指定特定的内存地址,也可以避免因为目标文件地址重叠而导致的链接错误。此外,使用 PIC 也可以提高程序的安全性,因为它使得攻击者更难利用内存布局信息来实现攻击。
在使用 GCC 或 Clang 编译器时,如果需要生成使用 PIC 格式的目标文件,就需要加上 -fPIC 选项。通常在编译共享库(shared library)时需要使用该选项。在 Linux 系统中,使用 ldd 命令可以查看一个可执行文件或共享库所依赖的动态链接库,如果一个库使用了 -fPIC 选项编译,则会在输出中显示 PIC 字样。