首页 > 编程语言 >C++: fatal error: Killed signal terminated program cc1plus

C++: fatal error: Killed signal terminated program cc1plus

时间:2024-05-08 19:33:28浏览次数:15  
标签:terminated cache 容器 signal sudo C++ swap var

C++: fatal error: Killed signal terminated program cc1plus

1. 在Linux系统中进行C++编译时,出现如下报错,导致编译中止:

C++: fatal error: Killed signal terminated program cc1plus
compilation terminated.

2. 解决方法——swap分区

查阅相关信息后,认为是虚拟机内存不足造成的。通过创建swap分区解决了这个问题,编译成功。

sudo mkdir -p /var/cache/swap/
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=1G count=8
sudo chmod 0600 /var/cache/swap/swap0
sudo mkswap /var/cache/swap/swap0
sudo swapon /var/cache/swap/swap0
sudo swapon -s

如果是在docker 中, 增加swap 需要在host 进行

由于每个运行的docker容器都使用主机内核,它们还使用主机的内存和交换。如果有需求,要求更好地使用主机交换空间的。如果你想从容器中添加交换,你有两个选择。

1. 以特权模式运行容器
在这种情况下,您将必须使用–privileged选项运行容器。
#示例

docker run -it –rm –privileged centos:6
2. 运行具有特权模式的容器可以为主机提供容器完整权限。

如果您阅读swapon的联机帮助页面,您可以看到,对于swapon来运行该进程应该具有CAP_SYS_ADMIN功能。在Docker中,您可以使用-cap-add参数有选择地向容器添加特定的功能。
#示例

docker run -it –rm –cap-add SYS_ADMIN centos:6
如果您以上述两种模式运行容器,您可以实现您正在尝试的功能。
现在,这种方法的问题是,当您在容器内创建交换并开始使用它时,实际上是使用它的主机内核,因此当您退出容器而不进行swapoff时,主机内核将仍然使用该文件,你不会得到一个干净的出口的容器。您将看到容器的死亡状态。

https://github.com/soedinglab/hh-suite/issues/280

https://blog.csdn.net/Aria_Miazzy/article/details/102455013

https://blog.csdn.net/weixin_44796670/article/details/121234446

标签:terminated,cache,容器,signal,sudo,C++,swap,var
From: https://www.cnblogs.com/michaelcjl/p/18180719

相关文章

  • 131. 分割回文串-c++
    给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。示例1:输入:s="aab"输出:[["a","a","b"],["aa","b"]]示例2:输入:s="a"输出:[["a"]]classSolution{public:vector<vector......
  • 79. 单词搜索-c++
    给定一个mxn二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例1:输入......
  • C++基础-如何引入第三方静态库、动态库或自定义库 摘自 https://blog.csdn.net/u01310
    C++无论是内置库还是第三方库,都需要自己手动进行查找、配置、引入等工作。本文即是帮助完成C++项目对于库、框架如何完成依赖引入达成可调用的目的,重点讲述开发工具VisualStudio中的操作静态库(.lib)静态库引入适用用于大部分无开源的第三方库,开发者不需要关心库的具体实现如何,......
  • UEC++做拖拽时的UDragDropOperation 的PayLoad是什么
    在UnrealEngine中,使用C++进行拖拽操作时,UDragDropOperation类的Payload成员变量允许你传递与拖拽操作相关的任何类型的数据。它通常被用来存储一些关于被拖拽元素的信息,这些信息在拖拽开始时被设置,然后可以在拖拽结束时被检索和使用。Payload是一个UObject*类型的指针,这意......
  • 在UEC++中的FReply
    在UnrealEngine中,FReply是一个核心类,用于在UI事件处理中返回和控制事件的传播。它主要用于SlateUI框架,是处理输入事件(如点击、拖拽、鼠标移动等)时的回应类型。FReply用于告诉Slate事件系统一个特定的事件是否被处理,以及是否应该将事件继续传递给其他控件。例如,当一个按钮被点......
  • C++容器
    C++容器bitset构造函数//1.默认构造函数:0bitset<10>a; //a:0000000000//2.用一个数值初始化//(1)当用一个数值去构造的时候,其实就是将数值在内存中的存储方式显示出来。(数值在内存中是以补码形式存储的)//(2)若bitset的位数n小于数值的位数,只取数值(小端的)前n位......
  • c++ 模板模板参数("Template Template Parameters")
    #include<iostream>#include<vector>#include<list>usingnamespacestd;namespace_nmsp1{//T类型模板参数,代表容器中元素类型//Container代表的不是一个类型(不能是一个类型模板参数),而是一个类模板(类名)//Container不叫做类型模板参数,而叫做模板模......
  • C++ keywords
     一、C++98及以前  二、C++111.alignofa.简介:是一个运算符,用于确定类型的对齐要求。b.语法:i.alignof(type_id/object)       c.返回值:i.std::size_t        // 返回指定类型或......
  • [18] C++虚幻引擎功能拓展
    Day1添加轴动作EAxis::Type//轴方向枚举//旋转输入轴UInputModifierSwizzleAxis*SwizzleAxis=NewObject<UInputModifierSwizzleAxis>(MappingContext);KeyMapping.Modifiers.Add(SwizzleAxis);//取反输入轴UInputModifierNegate*Negate=NewObject<UInputModifierNe......
  • 桥接模式(C++)
    桥接模式:主要应用于需求复杂,不确定的场景,用于解耦#include<iostream>usingnamespacestd;//ImplementorclassDrawAPI{public:virtualvoiddrawCircle(intradius,intx,inty)=0;virtual~DrawAPI(){}};//ConcreteImplementorAclassRedCircle:......