【问题标题】:Cross compiling glib with custom gettext使用自定义 gettext 交叉编译 glib
【发布时间】:2019-11-20 16:01:24
【问题描述】:

我正在尝试 croos 编译 glib 库,并且我认为我也需要 gettext 库。

这是 ./configure 输出

./configure --host=i686-linux --enable-libmount=no --with-pcre=internal --prefix=/home/glib/xport/ ... ... 检查 LIBFFI... 是的 检查 locale.h 可用性...否 检查 locale.h 存在...是的 配置:警告:locale.h:存在但无法编译

configure: WARNING: locale.h:     check for missing prerequisite headers?

configure: WARNING: locale.h: see the Autoconf documentation
configure: WARNING: locale.h:     section "Present But Cannot Be Compiled"
configure: WARNING: locale.h: proceeding with the compiler's result
configure: WARNING:     ## ------------------------------------------------------------------- ##
configure: WARNING:     ## Report this to http://bugzilla.gnome.org/enter_bug.cgi?product=glib ##
configure: WARNING:     ## ------------------------------------------------------------------- ##
checking for locale.h... no
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking libintl.h usability... no
checking libintl.h presence... yes
configure: WARNING: libintl.h: present but cannot be compiled
configure: WARNING: libintl.h:     check for missing prerequisite headers?
configure: WARNING: libintl.h: see the Autoconf documentation
configure: WARNING: libintl.h:     section "Present But Cannot Be Compiled"
configure: WARNING: libintl.h: proceeding with the compiler's result
configure: WARNING:     ## ------------------------------------------------------------------- ##
configure: WARNING:     ## Report this to http://bugzilla.gnome.org/enter_bug.cgi?product=glib ##
configure: WARNING:     ## ------------------------------------------------------------------- ##
checking for libintl.h... no
configure: error: 
*** You must have either have gettext support in your C library, or use the
*** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html)


Make fails with the following:
ls: cannot access msgunfmt: No such file or directory
ls: cannot access gettext: No such file or directory
ls: cannot access hostname: No such file or directory
ls: cannot access libgnu.la: No such file or directory
ls: cannot access msgexec: No such file or directory
ls: cannot access recode-sr-latin: No such file or directory
ls: cannot access .libs/msgmerge: No such file or directory
ls: cannot access .libs/libffi.so.6.0.1: No such file or directory
ls: cannot access .libs/msggrep: No such file or directory
ls: cannot access xgettext: No such file or directory
ls: cannot access envsubst: No such file or directory
ls: cannot access .libs/msgconv: No such file or directory
ls: cannot access msgmerge: No such file or directory
ls: cannot access libcroco_rpl.la: No such file or directory
ls: cannot access .libs/msgattrib: No such file or directory
ls: cannot access libtextstyle.la: No such file or directory
ls: cannot access hello: No such file or directory
ls: cannot access libxml_rpl.la: No such file or directory
ls: cannot access libffi_convenience.la: No such file or directory
ls: cannot access libglib_rpl.la: No such file or directory
ls: cannot access libgettextpo.la: No such file or directory
ls: cannot access msgattrib: No such file or directory
ls: cannot access libgnuintl.la: No such file or directory
ls: cannot access .libs/msgcmp: No such file or directory
ls: cannot access .libs/msgen: No such file or directory
ls: cannot access .libs/test-localcharset: No such file or directory
ls: cannot access cldr-plurals: No such file or directory
ls: cannot access libgettextlib.la: No such file or directory
ls: cannot access libffi.la: No such file or directory
ls: cannot access msgen: No such file or directory
ls: cannot access .libs/libgettextlib-0.20.1.so: No such file or directory
ls: cannot access .libs/hostname: No such file or directory
ls: cannot access .libs/recode-sr-latin: No such file or directory
ls: cannot access .libs/libgettextpo.so.0.5.5: No such file or directory
ls: cannot access .libs/msgfmt: No such file or directory
ls: cannot access msggrep: No such file or directory
ls: cannot access .libs/msguniq: No such file or directory
ls: cannot access msginit: No such file or directory
ls: cannot access .libs/libgettextsrc-0.20.1.so: No such file or directory
ls: cannot access .libs/msgfilter: No such file or directory
ls: cannot access msguniq: No such file or directory
ls: cannot access .libs/libgnuintl.so.8.1.6: No such file or directory
ls: cannot access .libs/urlget: No such file or directory
ls: cannot access msgcat: No such file or directory
ls: cannot access .libs/msginit: No such file or directory
ls: cannot access .libs/libasprintf.so.0.0.0: No such file or directory
ls: cannot access msgcmp: No such file or directory
ls: cannot access msgfmt: No such file or directory
ls: cannot access .libs/hello: No such file or directory
ls: cannot access msgconv: No such file or directory
ls: cannot access urlget: No such file or directory
ls: cannot access libgettextsrc.la: No such file or directory
ls: cannot access ngettext: No such file or directory
ls: cannot access libasprintf.la: No such file or directory
ls: cannot access .libs/msgunfmt: No such file or directory
ls: cannot access test-localcharset: No such file or directory
ls: cannot access .libs/libtextstyle.so.0.0.0: No such file or directory
ls: cannot access .libs/xgettext: No such file or directory
ls: cannot access msgcomm: No such file or directory
ls: cannot access .libs/msgcat: No such file or directory
ls: cannot access msgfilter: No such file or directory
ls: cannot access .libs/cldr-plurals: No such file or directory
ls: cannot access .libs/msgcomm: No such file or directory
ls: cannot access .libs/msgexec: No such file or directory

这些文件在我之前编译的自定义 gettext 目录中可用。 我应该如何将两者联系起来? 谢谢!

【问题讨论】:

  • 您检查config.log 的确切错误了吗?您的 configure 输出表明已找到 libintl.h 但未编译。原因将在config.log

标签: cross-compiling gettext glib


【解决方案1】:

这对我有用:

设置以下环境变量:

CFLAGS=-I<directory where gettext headers are>
CPPFLAGS=-I<directory where gettext headers are>
CXXFLAGS=-I<directory where gettext headers are>
LDFLAGS=-L<directory where gettext libraries are>

并使它们可用于配置和制作:在 shell/脚本中导出它们或在调用配置和制作时指定它们(例如 CFLAGS=-I... CPPFLAGS=-I... ... ./configure --prefix=... ...)

【讨论】:

    【解决方案2】:

    使用最新(受支持)版本的 GLib 并使用 Meson 构建,而不是使用自动工具。它比 autotools 有 better/easier cross-compilation support

    不再支持使用自动工具构建的所有 GLib 版本,并且将不再接收安全更新。他们太老了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 2013-07-30
      • 2019-01-08
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      相关资源
      最近更新 更多