1

当我使用 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。

4

1 回答 1

0

可能有在 HTCondor 环境中定义的环境变量将 gcc 设置为在错误的位置进行搜索cc1(这是一个内部编译器可执行文件),例如GCC_EXEC_PREFIXand ,或者HTCondor 中COMPILER_PATH可能缺少 gcc (有关有影响力的 GCC ,请参见此处环境变量)。PATH

我建议以下故障排除程序:

  • 在普通 shell 中,检查 gcc ( which gcc) 的位置。
  • 确保 gcc 所在的文件夹是PATHHTCondor 的一部分 - 或将其附加到PATH( export PATH=/path/to/gcc:$PATH) 的开头。
  • 确保变量GCC_EXEC_PREFIXCOMPILER_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 回答