当我使用HTCondor提交包含gcc code.c -o code.o
之类的shell脚本时,错误文件会显示error trying to exec 'cc1': execvp: No such file or directory
。
但是,当我只在执行机器上的shell中键入gcc code.c -o code.o
时,一切正常。
谁知道原因?我正在研究ubuntu-16.04.2-server-amd64。
答案 0 :(得分:0)
在HTCondor环境中可能会定义环境变量,将gcc设置为在错误的位置搜索cc1
(内部编译器可执行文件),例如GCC_EXEC_PREFIX
和{{1} },或者,HTCondor中的COMPILER_PATH
可能缺少gcc(请参阅here关于有影响力的GCC环境变量)。
我建议采用以下故障排除程序:
PATH
)的位置。which gcc
的一部分 - 或者将其附加到PATH
(PATH
)的开头。export PATH=/path/to/gcc:$PATH
和GCC_EXEC_PREFIX
。COMPILER_PATH
设置为HTCondor脚本中gcc的位置。修改强>
根据您的调查结果,将GCC_EXEC_PREFIX
命令添加到getenv = true
(doc)可以解决问题:
getenv =(True | False)
如果getenv设置为True,则condor_submit会将作业提交时所有用户的当前shell环境变量复制到作业ClassAd中。因此,作业将使用用户在提交时具有的相同环境变量集执行。