/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' 失败的主要内容,如果未能解决你的问题,请参考以下文章