当我使用 HTCondor 提交包含类似内容的 shell 脚本gcc code.c -o code.o
时,错误文件会说error trying to exec 'cc1': execvp: No such file or directory
。但是,当我gcc code.c -o code.o
在执行机器上输入 shell 时,一切正常。有人知道原因吗?我正在开发 ubuntu-16.04.2-server-amd64。
问问题
697 次
1 回答
0
可能有在 HTCondor 环境中定义的环境变量将 gcc 设置为在错误的位置进行搜索cc1
(这是一个内部编译器可执行文件),例如GCC_EXEC_PREFIX
and ,或者HTCondor 中COMPILER_PATH
可能缺少 gcc (有关有影响力的 GCC ,请参见此处环境变量)。PATH
我建议以下故障排除程序:
- 在普通 shell 中,检查 gcc (
which gcc
) 的位置。 - 确保 gcc 所在的文件夹是
PATH
HTCondor 的一部分 - 或将其附加到PATH
(export PATH=/path/to/gcc:$PATH
) 的开头。 - 确保变量
GCC_EXEC_PREFIX
和COMPILER_PATH
未在 HTCondor 环境中设置。 - 如果上述方法不起作用,您可以尝试相反的方法并
GCC_EXEC_PREFIX
在 HTCondor 脚本中设置 gcc 的位置。
编辑:
根据您的发现,将getenv = true
命令添加到condor_submit
(doc)可以解决问题:
getenv = (True | False)
如果 getenv 设置为 True,那么 condor_submit 将在作业提交时将用户当前的所有 shell 环境变量复制到作业 ClassAd 中。因此,该作业将使用用户在提交时拥有的相同环境变量集执行。
于 2017-11-17T19:30:26.217 回答