首页 > 其他分享 >WSL中使用vcpkg安装pcl库出现编译失败的原因

WSL中使用vcpkg安装pcl库出现编译失败的原因

时间:2023-01-20 22:34:59浏览次数:48  
标签:WSL wsl 编译 vcpkg swap pcl 内存

  在wsl使用vcpkg install pcl安装时,出现了BUILD_FAILED失败提示,查看log文件出现如下的错误:

compilation problem, c++: internal compiler error: Killed (program cc1plus)

 

  像是内存不足,所以调整了wsl的内存和swap,首先修改用户目录下的 .wslconfig文件,然后wsl --shutdown后重启wsl

[wsl2]
memory=10GB
swap=10GB

  还是同样的错误。通过top查看发现内存和swap都被使用到接近最大值,这就有点异乎寻常了。

 

最后通过谷歌发现一个类似的问题 https://groups.google.com/g/hoomd-users/c/3FnnVfO3FqA

其中有个解答给了很大的提示

Try make without the -j12. Virtual machines usually don't have enough resources to run parallel builds.

  有可能vcpkg的编译参数启用了多核心,但wsl核数太少导致在编译过程中内存占用异常。继续修改.wslconfig文件,增加核数配置

[wsl2]
memory=10GB
swap=10GB
processors=8

  然后再次shutdown后重启wsl,执行vcpkg install pcl,然后通过htop命令查看,发现8核心CPU跑满,内存占用率仍然较高,但swap基本正常,一直到最后编译成功。

 

  那么wsl默认核心数究竟是多少呢?

  尝试将用户目录中的.wslconfig文件改名,然后将wsl进行shutdown后重启,再次进行htop,发现wsl显示有20个核心(宿主机是14核心,20个逻辑处理器)

  所以实际原因不是wsl核数太少,而是核数太多,有可能导致同时并行编译的进程数太多,超过了内存和swap的负荷。

 

  通过修改.wslconfig文件,减少了wsl的核心数,也就抑制了vcpkg进行并行编译的进程数,进而降低了编译时的内存负担。

 

标签:WSL,wsl,编译,vcpkg,swap,pcl,内存
From: https://www.cnblogs.com/csliwei/p/17063341.html

相关文章

  • wsl2 参考的对象类型不支持尝试的操作
    原因使用代理软件,或游戏加速服务,winsock出现问题。可以通过注册表的方式,从winsock中排除wsl即可新增注册表信息新建.reg后缀的文本文件,内容为WindowsRegistryE......
  • WSL安装Ubuntu 20.04
    1.      安装WSLWSL是适用于Linux的Windows子系统可让开发人员按原样运行GNU/Linux环境-包括大多数命令行工具、实用工具和应用程序-且不会产生传统虚拟......
  • 通过WSL2在Windows11环境下运行Xilinx ISE 14.7
    引言最近我开始学习FPGA,但是软件配置上就折腾了好久,所以通过这篇文章记录一下Win11下ISE的安装流程。开始我按照入门教程安好了Vivado打算开始愉快的学习,结果发现...我买......
  • 简单分析Tomcat中WebappClassLoader的loadClass方法
    tomcat自定义在Java的双亲委派机制的基础上进行了修改。甚至于为了各个服务直接相互隔离,直接打破了双亲委派机制。那么什么叫打破双亲委派机制呢?我们都知道tomcat是一个容......
  • win11 wsl nvidia
    ubuntu换源https://www.cnblogs.com/Horizon-asd/p/12595723.htmlsudocp/etc/apt/sources.list/etc/apt/sources.list.oldsudovim/etc/apt/sources.listdebhttp:......
  • win10 docker desktop wsl2
    现在(2023年1月15日),在win10系统上使用docker,最好的搭配就是wsl2子系统+dockerdesktop的wsl2basedenginedockerdesktop可以在win10系统上安装,较新版本的dockerdesk......
  • 解决wsl2读取windos目录绿底蓝字看不清问题
    平时用cd/mnt/e/UBUNTU在~目录下执行一次,不重启电脑都可用sudomount-tdrvfsE:/UBUNTU/mnt/e/UBUNTU-ometadata,uid=1000,gid=1000,umask=22,fmask=111使用上......
  • HttpClient服务器调用发送接收参数对比介绍
    前言:一直使用HttpClient做服务器调用但是老是接收参数有问题,今天把它的常见的方法,用CRUD写了一遍希望对你有用1.POST©sendpostForEntity(url,request就是需要保存的对......
  • Linux (WSL) Files in Windows 10 | 如何传输文件在linux的window subsystem
    问题:访问基于linux的window的子系统,进行文件传输,如果采用winscp有点麻烦解决方法一:命令explorer.exe.如图:  解决方法二:也可以直接根据ubantu版本在文......
  • wsl 安装中文
    http://www.apull.net/html/20200604102131.htmlvim中文教程https://blog.csdn.net/m0_60353617/article/details/120288925......