1

首先,我的最终目标是交叉编译OpenCVarm所以我尝试了 2 种方法,但到目前为止没有成功。

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

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

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

据我了解,守护进程只需要在从站上运行。我在以下位置设置主机/etc/distcc/hosts:在该文件中,我拥有targetat192.168.10.45slaveat的 IP192.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当我在with上运行工作时

make -j33 CC=distcc

它似乎运行良好,但我看不到任何事情发生slave

ufw被禁用,两台机器 ping 并可以通过 ssh 相互通信。

我在这里想念什么?

4

2 回答 2

1
  1. 您必须在主 ( ) 机器上定义编译主机列表(通过/etc/distcc/hosts文件或通过环境变量)。通过在 master 上运行来检查主机列表。DISTCC_HOSTStargetdistcc --show-hosts

  2. 也指定distcc为 C++ 的编译器:

    make -j33 CC=distcc CXX=distcc
    
于 2016-09-27T18:51:52.150 回答
0

你跑了吗:

sudo update-distcc-symlinks

官方安装文档目前省略了这一步。我有相同的症状并且在查找日志时遇到了一些麻烦,但最终看到我必须在环境变量中指定日志记录:

DISTCCD_OPTS="${DISTCCD_OPTS} --log-file /dev/shm/distccd.log"  

其中说:

(dcc_warn_masquerade_whitelist) CRITICAL! /usr/local/lib/distcc not found. You must see up masquerade (see distcc(1)) to list whitelisted compilers or pass --enable-tcp-insecure. To set up masquerade automatically run update-distcc-symlinks.
于 2021-06-27T07:30:39.883 回答