4

我正在尝试在 Debian(Linux 的 Windows 子系统)上编译静态 Git 2.17.1:

$ mkdir _git
$ make configure
$ ./configure --prefix=$PWD/_git NO_TCLTK=true NO_GETTEXT=true CFLAGS="${CFLAGS} -static"
$ make all

但我得到了错误

...
    MSGFMT po/build/locale/pt_PT/LC_MESSAGES/git.mo
/bin/sh: 1: msgfmt: not found
Makefile:2309: recipe for target 'po/build/locale/pt_PT/LC_MESSAGES/git.mo' failed
make: *** [po/build/locale/pt_PT/LC_MESSAGES/git.mo] Error 127

NO_GETTEXT我从配置文件中获得的信息:

# Define NO_GETTEXT if you don't want Git output to be translated.

还需要msgfmt吗?

4

3 回答 3

5

这对我有用。

make NO_GETTEXT=YesPlease

于 2019-05-03T11:16:34.223 回答
1

变量 NO_GETTEXT 由配置脚本设置。如果您的构建主机具有 gettext 运行时,则将其设置为 false。

您有几个选项可以解决此问题:

  • 在构建主机上安装 gettext 工具(包括 msgfmt)。
  • 安装一个只创建一个空输出文件的虚拟 msgfmt。
  • /usr/bin/touch.mo运行之前的所有文件,make并确保它们的最后修改时间比.po文件的时间更新。
  • 在运行之前修补 Makefile make。将变量设置MOFILES为空看起来很有希望。

无论如何,您可能都必须修补 Makefile,所以也许只使用最后一个选项。

于 2018-08-09T13:51:44.370 回答
0

尝试使用 1 而不是 true...

https://www.atlassian.com/git/tutorials/install-git

NO_GETTEXT=1
于 2018-06-11T15:10:16.583 回答