我正在尝试在一个动力不足的系统上构建一个项目(英特尔计算棒,内存为1 1GB )。某些编译步骤的内存不足。我已经对icecc进行了配置,以便它可以将一些作业发送到功能更强大的机器上,但看起来icecc始终至少会在本地机器上执行一个作业。
我尝试在/etc/icecc/icecc.conf中设置ICECC_MAX_JOBS="0“(并重新启动iceccd),但此文件中的注释显示:
# Note: a value of "0" is actually interpreted as "1", however it
# also sets ICECC_ALLOW_REMOTE="no".我还尝试通过运行/etc/init.d/icecc stop禁用计算棒上的icecc守护进程。但是,icecc似乎仍然将一个作业放在本地机器上(也许如果守护进程关闭,它会将所有作业放在本地机器上?)。
这个项目是基于makefile的,我似乎被困在了一个瓶颈步骤上,在-j >1的情况下调用make仍然只会发出一个作业,而且这个编译会使系统内存过期。
我能想到的唯一解决办法是在不同的系统上编译,然后将二进制文件发回,但我希望在这个平台上进入一个调整/构建/评估周期,所以我希望能够直接在计算棒上工作。
这两个系统都运行ubuntu 14.04,如果有帮助的话。
发布于 2015-09-29 19:40:41
我认为它不受支持,因为如果出现网络问题,icecc会在主机上进行编译。最好的解决方案是在远程机器上编译,然后复制回生成的二进制文件。
发布于 2017-03-13 20:26:35
您是否尝试过在客户端终端(运行make的终端)中设置ICECC_TEST_REMOTEBUILD?
export ICECC_TEST_REMOTEBUILD=1在我的测试中,这总是强制所有源代码被远程编译。
请记住,链接总是在本地机器上完成的。
https://stackoverflow.com/questions/31866332
复制相似问题