首先,我的最终目标是为arm交叉编译 OpenCV ,因此我尝试了两种方法,但到目前为止没有成功。

这个问题与使用distcc进行编译有关,使用target运行make命令,但利用了强大的服务器来加快处理速度。

基本上,target似乎没有将作业发送到slave服务器。

我在两台机器上都安装了distcc(apt-get install distcc)

据我了解,该守护进程仅需要在从属服务器上运行。
我在/etc/distcc/hosts中设置了主机:在该文件中,我同时拥有target192.168.10.45的IP地址,分别位于slave192.168.10.34

我运行守护程序
distccd --daemon --allow 192.168.10.45
允许target
ps aux | grep distcc
我可以看到distccd的32个实例正在运行。

如果我用
netstat -pant | grep distcc
我看到守护程序在听

现在,如果我将日志文件拖到/var/log/distccd.log,则那里什么也没有,也没有任何反应

当我使用target运行作业时
make -j33 CC=distcc
它似乎运行正常,但我看不到slave上没有任何反应
ufw被禁用,两台机器可ping通,并且可以通过ssh相互通信。

我在这里想念什么?

最佳答案

  • 您必须在主计算机(/etc/distcc/hosts)上定义编译主机列表(通过DISTCC_HOSTS文件或通过target环境变量)。通过在主distcc --show-hosts上运行来检查主机列表。
  • 也指定distcc作为C++的编译器:
    make -j33 CC=distcc CXX=distcc
    
  • 09-04 22:33