我试图在Debian上编译静态Git 2.17.1(适用于Linux的Windows子系统):
$ 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
?
答案 0 :(得分:1)
变量NO_GETTEXT由配置脚本设置。如果您的构建主机具有gettext运行时,则将其设置为false。
您可以通过多种方法解决此问题:
/usr/bin/touch
所有.mo
文件,然后再运行make
,并确保它们的最后修改时间比.po
文件的时间最近。make
之前先修补Makefile。将变量MOFILES
设置为空看起来很有希望。您可能仍然需要修补Makefile,所以也许只使用最后一个选项即可。
答案 1 :(得分:1)
这对我有用。
make NO_GETTEXT=YesPlease
答案 2 :(得分:0)