/include/boost/thread/pthread/mutex.hpp:111: boost::mutex::~mutex(): Assertion `!res' 失败
Posted
技术标签:
【中文标题】/include/boost/thread/pthread/mutex.hpp:111: boost::mutex::~mutex(): Assertion `!res\' 失败【英文标题】:/include/boost/thread/pthread/mutex.hpp:111: boost::mutex::~mutex(): Assertion `!res' failed/include/boost/thread/pthread/mutex.hpp:111: boost::mutex::~mutex(): Assertion `!res' 失败 【发布时间】:2020-03-04 23:28:07 【问题描述】:在 Ubuntu 16.04 上,我编译了 spinnaker SDK src/Acquisition/make,我得到了 bin/ 下的“Acquisition” 当我运行它时,我得到了错误: 检测到的摄像头数量:1
相机 0 的运行示例...
* 设备信息 *
设备ID:18073382 设备序列号:18073382 设备供应商名称:Point Grey Research 设备型号:Grasshopper3 GS3-U3-32S4M 设备类型:U3V 设备显示名称:点灰色研究 设备访问状态:OpenReadWrite 设备版本:固件:v2.25.3.00 FPGA:v2.02 DeviceDriverVersion:无:0.0.0.0 设备用户ID: 设备更新程序:0 设备实例 ID:0113C726 设备位置: 设备电流速度:高速 GUIXMLLocation:设备 GUIXMLPath:Input.xml GenICamXMLLocation:设备 GenICamXML路径: 设备U3V协议:1
* 图像采集 *
采集模式设置为连续... 无法开始图像采集。中止错误 -1010...
相机 0 示例完成...
完成!按 Enter 退出...
Acquisition_C: /softwarelib/Boost/boost_1_60_0/GCC_5_3_1/linux_cpp11/release/amd64/include/boost/thread/pthread/mutex.hpp:111: boost::mutex::~mutex(): 断言`!res'失败
示例代码本身根本不使用互斥锁。
【问题讨论】:
【参考方案1】:这个错误是由于usbfs内存分配不足造成的。有关如何将值增加到 1000 的信息,请参阅 Spinnaker 自述文件的第 3 部分,如下所示:
================================================ =================================
3。 USB 相关说明
在 Linux 系统上,默认情况下 USB-FS 内存限制为 16 MB 或更少。到 增加此限制以利用成像硬件的全部功能,a 需要对系统进行细微的更改。
永久修改 USB-FS 内存:
1. Open the /etc/default/grub file in any text editor. Find and replace:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
with this:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=1000"
2. Update grub with these settings:
$ sudo update-grub
3. Reboot and test a USB 3.1 camera.
如果此方法未能设置内存限制,则临时修改 USB-FS 内存直到下次重新启动,运行以下命令: $ sudo sh -c 'echo 1000 > /sys/module/usbcore/parameters/usbfs_memory_mb'
要确认内存限制已成功更新,请运行以下命令: $ cat /sys/module/usbcore/parameters/usbfs_memory_mb
如果使用多个 USB3 相机,USB-FS 内存限制可能需要超过 1000。 有关这些更改的更多信息,请访问: https://www.flir.com/support-center/iis/machine-vision/application-note/understanding-usbfs-on-linux
【讨论】:
以上是关于/include/boost/thread/pthread/mutex.hpp:111: boost::mutex::~mutex(): Assertion `!res' 失败的主要内容,如果未能解决你的问题,请参考以下文章