gpt4 book ai didi

perl - 如果 -x 选项在 Perl 中究竟意味着什么

转载 作者:行者123 更新时间:2023-12-02 22:31:11 25 4
gpt4 key购买 nike

我不懂 Perl,所以请耐心等待!这是脚本中的一点,它会产生错误:

    if (-x '/usr/bin/gcc') {
$gcc = Fink::Services::enforce_gcc(<<GCC_MSG);
Under CURRENT_SYSTEM, Fink must be bootstrapped or updated with gcc
EXPECTED_GCC, however, you currently have gcc INSTALLED_GCC selected.
This typically is due to alteration of symlinks which were
installed by Xcode. To correct this problem, you will need
to restore the compiler symlinks to the configuration that
Apple provides.
GCC_MSG
$gcc = "-gcc" . $gcc;
}

这个脚本在 Mac 上安装 fink 包管理器。 (本人不是Mac用户,想帮 friend 安装一个程序,本来是GNU程序,需要从源码编译)。

安装脚本提示 GCC 的版本不是它所期望的。我怀疑这是失败的地方,但不太明白它在做什么。

我已经尝试创建一个符号链接(symbolic link)到已安装的 GCC,它是 4.2.1 版,而 fink 想要 4.2 版。

如果我将指向 GCC 的符号链接(symbolic link)放入/usr/bin 中,则会显示此消息。否则它会正确识别 GCC 的版本并拒绝安装。

我认为 -x 开关类似于 Bash,意味着它正在检查文件是否是可执行文件,但我不确定它在 Perl 中究竟做了什么,它会处理指向可执行文件的链接作为可执行文件?

谢谢!

最佳答案

它测试文件是否设置了可执行位。在您的情况下: chmod -x/usr/bin/gcc 将导致您的 if block 不执行。chmod +x/usr/bin/gcc 将使您的 if block 得到执行。

关于perl - 如果 -x 选项在 Perl 中究竟意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12221559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com