【问题标题】:HTCondor gcc: error trying to exec 'cc1': execvp: No such file or directoryHTCondor gcc:尝试执行“cc1”时出错:execvp:没有这样的文件或目录
【发布时间】:2017-11-17 14:07:40
【问题描述】:

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

【问题讨论】:

    标签: gcc condor


    【解决方案1】:

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

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

    • 在普通shell中,查看gcc的位置(which gcc)。
    • 确保 gcc 所在的文件夹是 HTCondor 中 PATH 的一部分 - 或将其附加到 PATH (export PATH=/path/to/gcc:$PATH) 的开头。
    • 确保未在 HTCondor 环境中设置变量 GCC_EXEC_PREFIX 和 COMPILER_PATH。
    • 如果上述方法不起作用,您可以尝试其他方法,并将GCC_EXEC_PREFIX 设置为 HTCondor 脚本中 gcc 的位置。

    编辑:

    根据您的发现,将getenv = true 命令添加到condor_submit (doc) 可以解决问题:

    getenv = (True | False)
    如果 getenv 设置为 True,那么 condor_submit 将在作业提交时将所有用户当前的 shell 环境变量复制到作业 ClassAd 中。因此,作业将使用用户在提交时拥有的相同环境变量集执行。

    【讨论】:

    • 非常感谢。我在我的提交文件中添加了getenv = true 并且有效。
    • @AlanRivers simple :-) 很高兴为您提供帮助
    • @AlanRivers 我根据您的发现更新了我的答案,以完成它并希望对未来的访客有所帮助 - 如果看起来不错,请考虑接受它
    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    相关资源
    最近更新 更多