在Raspbian上编译pybind11测试用例时出现致命错误

fatal error while compiling pybind11 test cases on raspbian

本文关键字:致命错误 测试用例 pybind11 Raspbian 编译      更新时间:2023-10-16

在这个问题之后,我现在正在尝试按照Raspberry Pi上的说明编译pybind11测试用例。到目前为止我做了什么:

  • 从官方页面安装了Raspbian Raspbian Buster Lite
  • 更新/升级所有软件包
  • 按照此处的说明更新/升级 Python 包
  • 按照此处的说明pybind11编译和安装

我的环境是:

  • Raspbian buster 版本 10
  • 蟒蛇 3.7.3
  • 点 20.0.2
  • GCC 8.3.0

然后运行命令make check -j 4编译器停止在:

[ 68%] 构建 CXX 对象 CmakeFiles/pybind11_tests.dir/test_numpy_dtypes.cpp.o

错误是:

C++:致命错误:终止信号终止程序 cplusplus

编译终止。

make[3]: *** [CMakeFiles/pybind11_tests.dir/build.make:297: CMakeFiles/pybind11_tests.dir/test_local_bindings.cpp.o] 错误 1

制造[3]: *** 等待未完成的工作...

make[2]: *** [CMakeFiles/Makefile2:110: CMakeFiles/pybind11_tests.dir/all] 错误 2

make[1]: *** [CMakeFiles/Makefile2:191: CMakeFile/check.dir/rule] 错误 2

制作: *** [生成文件:157: 检查] 错误 2

如果您能帮助我了解问题是什么以及如何解决它,我将不胜感激。

做更多的研究并使用正确的关键字查询,似乎这个问题与bypynd11或Raspbian无关。问题似乎出在内存溢出上,如之前的许多帖子(包括此处和此处(中所述。解决方案可能是-j <n>n < 4的地方使用更少的并行进程,或者根本不按照此处的建议使用它。例如,我测试了

make check -j 3

它有效。或者按照此处所述创建交换文件。

是的,您必须创建第一个交换文件。之后你可以做到。自动交换文件将增加内存。它将使用 rom 空间来提高内存性能。

请通过以下链接,它会对您有所帮助。

https://youtu.be/Cr5mDFxvsb0