pcl与gtsam由于eigen导致的错误

当尝试将PCL库与GTSAM库一起链接到同一个可执行文件时,会遇到运行时错误。问题源于两者使用的Eigen版本不一致。为解决此问题,需要重新编译GTSAM,指定使用与PCL相同的Eigen版本,通过设置编译选项-GTSAM_USE_SYSTEM_EIGEN=On和-GTSAM_BUILD_WITH_MARCH_NATIVE=Off。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 当pcl和gtsam同时link到某个可执行文件时就会产生error
Observations and Issues Noticed:
When CMakeLists.txt has "target_link_libraries(linkErr ${PCL_LIBRARIES})" the code works fine.
When that line is replaced with "target_link_libraries(linkErr ${PCL_LIBRARIES} gtsam)" the code gets the runtime error.
To help with debugging, additional observations are provided as a comment at the end of src/linkErr.cpp file.
  • 解决办法:
  • 重新编译gtsam,编译时选用和pcl一致的eigen
- GTSAM_USE_SYSTEM_EIGEN=On
- GTSAM_BUILD_WITH_MARCH_NATIVE=Off

https://groups.google.com/g/gtsam-users/c/jdySXchYVQg

在 CMake 中正确链接 PCL (Point Cloud Library) 和 gtsam 库需要按照以下步骤进行: 1. **找到 PCLgtsam 的安装路径**:确保你已经安装了 PCLgtsam,并且知道它们的安装路径。 2. **设置 CMake 变量**:在 CMakeLists.txt 文件中,设置 PCLgtsam 的路径。 3. **找到 PCLgtsam 的头文件和库文件**:使用 `find_package` 命令找到 PCLgtsam 的头文件和库文件。 4. **包含头文件目录**:使用 `include_directories` 命令包含 PCLgtsam 的头文件目录。 5. **链接库**:使用 `target_link_libraries` 命令将 PCLgtsam 的库链接到你的目标可执行文件或库。 以下是一个示例 CMakeLists.txt 文件,展示了如何正确链接 PCLgtsam 库: ```cmake cmake_minimum_required(VERSION 3.10) project(MyProject) # 设置 C++ 标准 set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 查找 PCL find_package(PCL 1.8 REQUIRED) # 查找 gtsam find_package(gtsam REQUIRED) # 包含头文件目录 include_directories(${PCL_INCLUDE_DIRS}) include_directories(${gtsam_INCLUDE_DIR}) # 添加可执行文件 add_executable(my_executable main.cpp) # 链接 PCLgtsam 库 target_link_libraries(my_executable ${PCL_LIBRARIES} ${gtsam_LIBRARIES}) ``` 在这个示例中,我们首先使用 `find_package` 命令找到 PCLgtsam 的安装路径。然后,使用 `include_directories` 命令包含它们的头文件目录。最后,使用 `target_link_libraries` 命令将 PCLgtsam 的库链接到我们的可执行文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值