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

Posted

技术标签:

【中文标题】在 raspbian 上编译 pybind11 测试用例时出现致命错误【英文标题】:fatal error while compiling pybind11 test cases on raspbian 【发布时间】:2020-01-28 20:57:38 【问题描述】:

按照this question,我现在正在尝试按照here 的指示在Raspberry Pi 上编译pybind11 测试用例。到目前为止我做了什么:

从the official page 安装了 Raspbian Raspbian Buster Lite 更新/升级了所有软件包 按照here的说明更新/升级了python包 按照here 的说明编译并安装pybind11

我的环境是:

Raspbian buster 版本 10 python 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

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

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

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

make: *** [Makefile:157: check] 错误 2

如果您能帮助我了解问题所在以及如何解决,我将不胜感激。

【问题讨论】:

【参考方案1】:

做更多研究并使用the right keyword query,似乎这个问题与bypynd11或Raspbian无关。问题似乎与之前许多帖子(包括here 和here)中所述的内存溢出有关。解决方案可能是使用更少的并行进程-j <n> 其中n < 4,或者根本不使用它建议here。例如,我测试了

make check -j 3

它有效。或者按照here 的描述创建一个交换文件。

【讨论】:

【参考方案2】:

是的,您必须创建第一个交换文件。之后你就可以做到了。实际上交换文件会增加你的内存。它将使用 rom 空间进行 ram 性能。

请浏览下面的链接,它会对您有所帮助。

https://youtu.be/Cr5mDFxvsb0

【讨论】:

以上是关于在 raspbian 上编译 pybind11 测试用例时出现致命错误的主要内容,如果未能解决你的问题,请参考以下文章

在树莓派上编译 Haskell

在 Raspberry 上编译 Qt5 应用程序

在 64 位 Arm 上编译和安装 Chez 方案?

在mac上编译C++11代码?

Erlang/OTP 无法在 Solaris 11 11/11 上编译

CUDA 11.2 是不是支持向后兼容在 CUDA 10.2 上编译的应用程序?