Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 编译器错误-找不到msgfmt命令_Git_Compiler Errors_Gettext_Shared Hosting_Msgfmt - Fatal编程技术网

Git 编译器错误-找不到msgfmt命令

Git 编译器错误-找不到msgfmt命令,git,compiler-errors,gettext,shared-hosting,msgfmt,Git,Compiler Errors,Gettext,Shared Hosting,Msgfmt,我正在尝试从共享主机更新Git。为此,我遵循以下步骤: 下载最新的Git版本 解包并将其放在服务器上 配置并创建Makefile->/Configure--prefix=$HOME/dev/git/src--not tcltk 构建包->make然后makeinstall 更新PATH.bash\u配置文件 我被困在第四点。当我运行make命令时,我得到以下信息: user@ssh1:~/dev/git/src$ make SUBDIR gitweb SUBDIR ../ make[2]: ?

我正在尝试从共享主机更新Git。为此,我遵循以下步骤:

  • 下载最新的Git版本
  • 解包并将其放在服务器上
  • 配置并创建Makefile->
    /Configure--prefix=$HOME/dev/git/src--not tcltk
  • 构建包->
    make
    然后
    makeinstall
  • 更新PATH.bash\u配置文件
  • 我被困在第四点。当我运行
    make
    命令时,我得到以下信息:

    user@ssh1:~/dev/git/src$ make
    SUBDIR gitweb
    SUBDIR ../
    make[2]: ? GIT-VERSION-FILE ? est ? jour.
    GEN git-instaweb
    SUBDIR perl
    SUBDIR git_remote_helpers
    SUBDIR templates
    MSGFMT po/build/locale/is/LC_MESSAGES/git.mo
    /bin/sh: msgfmt: command not found
    make: *** [po/build/locale/is/LC_MESSAGES/git.mo] Erreur 127
    
    编译器抛出
    msgfmt命令未找到
    错误

    我在谷歌上搜索了一下,它似乎与gettext软件包有关


    知道如何修复共享主机上的错误吗?

    我也有同样的问题。感谢您在查找它与gettext相关方面所做的工作,一个简单的
    apt get install gettext
    为我修复了它。

    在使用Xcode(使用Makefile)构建Git时,我必须在Makefile中定义
    NO\u gettext=YesPlease
    ,以解决此问题。

    尝试将-I添加到make命令中

    >make-i…

    make -i
    make -i install
    
    …在这个问题上做得很完美。另外,如果任何人在使用http/https帮助程序时遇到问题,请在配置过程中不要忘记添加以下内容

    ./configure --with-curl --with-expat
    

    在cygwin上,还需要安装gettext-devel包。仅gettext包不足以解决此问题。

    msgfmt
    包含在
    gettext-devel
    cygwin包中。安装它(通过setup.exe或apt cyg),错误应该会消失。

    您可以使用与安装git相同的方式安装gettext。通过下载、提取、构建并安装到主文件夹中的给定位置:

    curl -O https://ftp.gnu.org/pub/gnu/gettext/gettext-0.20.1.tar.gz
    tar xvf gettext-0.20.1.tar.gz
    cd gettext-0.20.1/
    ./configure --prefix=/home/$HOME/opt
    make
    make install
    

    将前缀设置为安装所需的位置。

    xgettext
    msgfmt
    等属于GNU
    gettext
    工具集。在macOS上,您可以使用的
    端口
    命令在系统上安装以下工具:

    port install gettext
    

    在Mac Os上,这对我很有用:

    brew install gettext
    

    在Debian 10中,我缺少包
    gettext
    。解决方法如下:

    $sudo apt install gettext


    然后
    make
    commando工作正常。

    快速破解:尝试“make-k”或“make-i”跳过编译,可能你会得到Git,但没有本地化和/或文档。你是对的,msgfmt对运行Git并不重要。“make-i”成功了,谢谢。对于OSX,你可以在这里找到答案,这应该是公认的答案;)这显然是最好的答案,然而,在cygwin上,安装gettext并没有帮助。可能存在版本问题?在共享主机上,这不是正确的答案,因为您没有sudo访问权限。@Lucas在cygwin上,从源代码/在没有root访问权限的系统上安装时,您需要gettext-devel for msgfmt(请参阅),在
    gettext
    源根目录下的
    gettext工具
    子目录中运行
    /configure&&make&&make install
    。首选此选项,因为我无法安装gettext,-I(忽略错误)太愚蠢了
    make NO_GETTEXT=1
    成功了。应该注意的是“-i”是“-ignore errors”的缩写,因此任何其他错误也将被忽略,并且可能会因为许多与GETTEXT相关的错误而被忽略。所以,如果没有其他办法,我应该是最后的选择。@Boris是的,这是一个错误的做法,但不是每个人都是黑客。很明显,您需要gettext-lib来消除错误。问题不在于Cygwingettext-devel也是centos 6的软件包
    brew link gettext --force