当前位置: 首页> 娱乐> 影视 > 郑州网络营销公司哪个好_手机制作表白网站_哪家建设公司网站_搜索引擎优化是指

郑州网络营销公司哪个好_手机制作表白网站_哪家建设公司网站_搜索引擎优化是指

时间:2025/7/10 18:08:43来源:https://blog.csdn.net/hzx19901102/article/details/144077634 浏览次数:0次
郑州网络营销公司哪个好_手机制作表白网站_哪家建设公司网站_搜索引擎优化是指

文章目录

  • 环境配置
  • 安装wxPython
  • 下载编译
  • 测试
  • 报错1
    • 问题描述
    • 问题分析
    • 问题解决
  • 参考


环境配置

Ubuntu20.04,python3.8.10,boost自带的1.71

sudo apt update
sudo apt-get install python3-setuptools python3-rosinstall ipython3 libeigen3-dev libboost-all-dev doxygen libopencv-dev ros-noetic-vision-opencv ros-noetic-image-transport-plugins ros-noetic-cmake-modules python3-software-properties software-properties-common libpoco-dev python3-matplotlib python3-scipy python3-git python3-pip libtbb-dev libblas-dev liblapack-dev libv4l-dev python3-catkin-tools python3-igraph libsuitesparse-dev 

安装wxPython

先下载 wxPython-4.2.1-cp38-cp38-linux_x86_64.whl

pip3 install wxPython-4.2.1-cp38-cp38-linux_x86_64.whl

下载编译

mkdir ~/kalibr_ws/src
cd ~/kalibr_ws/src
git clone --recursive https://github.com/ori-drs/kalibrcd ~/kalibr_ws
source /opt/ros/noetic/setup.bash
catkin init
catkin config --extend /opt/ros/noetic
catkin config --merge-devel 					# Necessary for catkin_tools >= 0.4.
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Releasecatkin build -DCMAKE_BUILD_TYPE=Release -j16    # 比较耗时,5-6分钟吧,可以喝杯茶。

测试

damon@damon-virtual-machine:/opt/kalibr_ws$ source devel/setup.bash
damon@damon-virtual-machine:/opt/kalibr_ws$ devel/lib/kalibr/kalibr_calibrate_cameras --help
importing libraries
Calibrate the intrinsics and extrinsics of a camera system with non-shared overlapping field of view.usage: Example usage to calibrate a camera system with two cameras using an aprilgrid. cam0: omnidirection model with radial-tangential distortioncam1: pinhole model with equidistant distortionkalibr_calibrate_cameras --models omni-radtan pinhole-equi --target aprilgrid.yaml \--bag MYROSBAG.bag --topics /cam0/image_raw /cam1/image_raw。。。。。。

报错1

问题描述

在使用 Kalibr 的 kalibr_calibrate_cameras 脚本时,执行命令时遇到以下错误:

damon@damon-virtual-machine:~/kalibr_ws$ devel/lib/kalibr/kalibr_calibrate_cameras --help
importing libraries
Traceback (most recent call last):File "devel/lib/kalibr/kalibr_calibrate_cameras", line 15, in <module>exec(compile(fh.read(), python_script, 'exec'), context)File "/home/damon/kalibr_ws/src/kalibr/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras", line 6, in <module>import smFile "/home/damon/kalibr_ws/devel/lib/python3/dist-packages/sm/__init__.py", line 34, in <module>exec(__fh.read())File "<string>", line 4, in <module>
ImportError: /home/damon/kalibr_ws/devel/lib/python3/dist-packages/sm/libsm_python.so: undefined symbol: _ZN5boost6python15instance_holder8allocateEP7_objectmmm
damon@damon-virtual-machine:~/kalibr_ws$ 

问题分析

这个错误表明,libsm_python.so 文件中依赖的符号 _ZN5boost6python15instance_holder8allocateEP7_objectmmm 无法解析。该符号属于 Boost.Python 库,通常用于处理 Python 和 C++ 之间的交互。

问题解决

1.验证 Boost 版本

检查 /usr/include/boost/version.hpp,确保显示的版本是系统默认版本(1.71):

damon@damon-virtual-machine:~/kalibr_ws$ cat /usr/include/boost/version.hpp | grep BOOST_LIB_VERSION
//  BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
#define BOOST_LIB_VERSION "1_71"
damon@damon-virtual-machine:~/kalibr_ws$ 
  1. 检查是否安装 boost-python
damon@damon-virtual-machine:~/kalibr_ws$ dpkg -l | grep libboost-python
ii  libboost-python-dev                         1.71.0.0ubuntu2                       amd64        Boost.Python Library development files (default version)
ii  libboost-python1.71-dev                     1.71.0-6ubuntu6                       amd64        Boost.Python Library development files
ii  libboost-python1.71.0                       1.71.0-6ubuntu6                       amd64        Boost.Python Library
damon@damon-virtual-machine:~/kalibr_ws$ 

从输出可以看出,系统中已经正确安装了 boost-python 和与 Boost 1.71 匹配的相关开发包:

  • libboost-python-dev:默认的开发文件(与系统的 Boost 版本保持一致)。
  • libboost-python1.71-dev:Boost 1.71 版本的开发文件。
  • libboost-python1.71.0:Boost 1.71 版本的运行时库。

这些包都已经安装完毕,说明 boost-python 的安装环境是正常的。

  1. 检查 boost-python 的库文件是否存在

运行以下命令查看 boost-python 的动态库:

ls /usr/lib | grep boost_python

输出中应包含类似以下内容:

libboost_python1.71.so
libboost_python-py38.so

但运行ls /usr/lib | grep boost_python,没有输出
在这里插入图片描述

从输出可以看出,boost-python 的动态库文件似乎未正确安装或未找到。尽管 dpkg 显示相关开发包已经安装,但动态库文件 (libboost_python*.so) 并未出现在 /usr/lib 目录中。

  1. 确认动态库文件的实际位置

有时动态库可能安装到了其他路径(例如 /usr/lib/x86_64-linux-gnu)。运行以下命令搜索 libboost_python 文件:

damon@damon-virtual-machine:~/kalibr_ws$ sudo find /usr -name "libboost_python*.so"
[sudo] damon 的密码: 
/usr/lib/x86_64-linux-gnu/libboost_python1.71.so
/usr/lib/x86_64-linux-gnu/libboost_python38.so
damon@damon-virtual-machine:~/kalibr_ws$ 

从输出可以看出,boost-python 的动态库文件已正确安装并位于路径 /usr/lib/x86_64-linux-gnu/ 中。具体包括以下文件:

  • /usr/lib/x86_64-linux-gnu/libboost_python1.71.so:Boost Python 1.71 的主动态库。
  • /usr/lib/x86_64-linux-gnu/libboost_python38.so:适配 Python 3.8 的 Boost Python 动态库。

这些文件是正确的,说明 boost-python 已安装成功。

。。。。比较多,不整理了

  1. 创建测试代码文件

在当前目录创建 my_program.cpp

#include <boost/python.hpp>
#include <iostream>// 定义普通函数
std::string greet() {return "Hello, Python!";
}// 模块初始化
BOOST_PYTHON_MODULE(example) {using namespace boost::python;def("greet", greet); // 绑定函数
}int main() {std::cout << "Boost Python test program compiled successfully!" << std::endl;return 0;
}

编译命令

g++ -shared -fPIC -I/usr/include/python3.8 -o example.so my_program.cpp /usr/lib/x86_64-linux-gnu/libboost_python1.71.so

加载并测试模块:

python3.8 -c "import example; print(example.greet())"

预期输出:

Hello, Python!

参考

Ubuntu20.04安装kalibr


关键字:郑州网络营销公司哪个好_手机制作表白网站_哪家建设公司网站_搜索引擎优化是指

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: