vlfeat 在ubuntu20.04编译报错解决

vlfeat库在从Ubuntu18.04升级到20.04时遇到OpenMP相关错误,主要原因是#pragmaompparalleldefault(none)。解决方法是移除vl/kmeans.c中的默认并行设置。

vlfeat要求是在ubuntu18.04, 当在20.04编译时会遇到如下错误

In file included from vl/kmeans.h:21,
                 from vl/kmeans.c:363:
vl/kmeans.c: In function ‘_vl_kmeans_quantize_f’:
vl/mathop.h:92:37: error: ‘vl_infinity_d’ not specified in enclosing ‘parallel’
   92 | #define VL_INFINITY_D (vl_infinity_d.value)
      |                       ~~~~~~~~~~~~~~^~~~~~~
vl/kmeans.c:685:34: note: in expansion of macro ‘VL_INFINITY_D’
  685 |       TYPE bestDistance = (TYPE) VL_INFINITY_D ;
      |                                  ^~~~~~~~~~~~~
In file included from vl/kmeans.c:1782:
vl/kmeans.c:672:9: error: enclosing ‘parallel’
  672 | #pragma omp parallel default(none) \
      |         ^~~
In file included from vl/kmeans.c:1788:
vl/kmeans.c: In function ‘_vl_kmeans_quantize_d’:
vl/kmeans.c:685:27: error: ‘vl_infinity_d’ not specified in enclosing ‘parallel’
  685 |       TYPE bestDistance = (TYPE) VL_INFINITY_D ;
vl/kmeans.c:672:9: error: enclosing ‘parallel’
  672 | #pragma omp parallel default(none) \
      |         ^~~
             CC bin/glnxa64/objs/slic.o

这种parallel的错误查了一下,是openMP的问题,问题在20.04。
找到一个帖子,链接
具体解决办法是removing all default(None) in file vl/kmeans.c

### Ubuntu 20.04 启动报错解决方案 对于Ubuntu 20.04启动过程中遇到的各种错误,可以采取不同的方法来解决问题。以下是针对不同类型的启动错误所提供的具体措施。 #### U盘安装Ubuntu 20.04桌面系统报错 Errno5 输入输出错误 当尝试通过U盘安装Ubuntu 20.04并遭遇`Errno5 -- Input/output error`时,这通常意味着存在硬件兼容性问题或是USB介质本身存在问题[^2]。建议先测试其他USB端口以及更换另一根U盘重试;如果条件允许的话,还可以考虑使用不同的ISO镜像文件重新制作启动盘。 #### NVMe硬盘未格式化造成Ubuntu 20.04缓慢启动 若发现新设备上的Ubuntu 20.04开机时间过长,则可能是由于NVMe固态硬盘未经适当初始化所致[^3]。此时应检查系统的日志记录(`dmesg | less`)寻找异常条目,并确认磁盘已正确分区与挂载。必要情况下可利用工具如GParted对存储器进行清理和重新布局操作。 #### 更新源校验失败导致的警告信息 面对类似于“W: 校验数字签名时出错”的提示,在执行`apt-get update`命令之后出现这种情况往往是因为第三方PPA库缺乏有效的GPG密钥认证所引起[^4]。可以通过移除有问题的软件源地址或者导入缺失的安全证书的方式来修复: ```bash sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0FAD31CA8719FCE4 ``` 以上指令会向官方服务器请求指定ID对应的公开加密材料从而恢复正常的APT管理流程。 #### 编译程序缺少依赖项引发共享库加载失败 最后一种情况涉及到了开发环境下的编译任务,特别是当碰到类似`error while loading shared libraries: libncurses.so.5`这样的告警时,表明当前环境中尚缺某些必要的动态链接库支持[^5]。对此只需简单地借助包管理系统补充相应的资源即可: ```bash sudo apt install libncurses5 ``` 上述命令能够自动下载并部署所需的运行时组件至目标主机之上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值