我正在尝试在一个相当不足的系统上构建一个项目(具有1GB RAM的英特尔计算棒)。一些编译步骤耗尽内存。我已经配置了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>调用make。 1仍然只发出一个作业,此编译使系统内存到期。
我能想到的唯一工作就是在不同的系统上实际编译,然后重新发送二进制文件,但我希望在这个平台上进入调整/构建/评估周期,所以我希望能够从计算棒直接工作。
如果有帮助,两个系统都在运行ubuntu 14.04。
答案 0 :(得分:1)
我认为它不受支持,因为如果存在网络问题,icecc
会在主机本身上进行编译。最好的解决方案是在远程计算机上进行编译并复制生成的二进制文件。
答案 1 :(得分:1)
您是否尝试在客户端终端(运行ICECC_TEST_REMOTEBUILD
的位置)设置make
?
export ICECC_TEST_REMOTEBUILD=1
在我的测试中,这总是强制远程编译所有源。
请记住,链接始终在本地计算机上完成。