编译可在Android上运行的依赖库(二):gettext库

  • 时间:
  • 浏览:3
  • 来源:5分快乐8APP下载_5分快乐8APP官方

作者:寻禹@阿里聚安全,更多技术文章,请点击阿里聚安全博客

奇怪的是,我在Linux上不指定CPP和CPPFLAGS宏进行编译我过多 报里面的错误,而在Mac OSX系统上不指定CPP和CPPFLAGS宏就会报里面的错误。

下载网址:http://ftp.gnu.org/gnu/automake/

需要安装1.15版本。

这种 错误在编译gettext时我过多 地处,而会在执行make install的前一天地处,它会沒有libgettextlib.a这种 库。当编译成功时,libgettextlib.a这种 库是会生成的,这种 库的路径在这种 目录中:<gettext源码目录>/gettext-tools/gnulib-lib/.libs/,将这种 路径再加到configure命令行的库搜索路径中,里面的configure的命令行选项中设置了这种 目录。

作者:寻禹@阿里聚安全

注意:由于突然出现这种 错误需要先使用"make clean && make distclean"命令清理项目,然后再将gettext库路径再加到configure命令行的库搜索路径中。

编译时由于会报下面的错误:

到gettext的官网去下载这种 库的源码。下载地址:http://ftp.gnu.org/pub/gnu/gettext/

LDFLAGS指向的目录是gettext编译输出的目录,由于不再加这种 目录,在gettext安装时由于报"error: cannot find -lgettextlib"这种 错误,在下面“编译问题排错”一节有对这种 错误进行解析。

在unbuntu中安装texinfo。

源码:

--host选项的值"arm-linux-eabi"在configure脚本中会被扩展成"arm-linux-eabi-gcc"原先 的编译工具名。--host选项的值需要所含在软链接的名字中,举例,由于有个软链接名为arm-linux-eabi-gcc,沒有--host选项的值就需然后arm-linux-eabi;由于有个软链接名为arm-linux-eabiabc-gcc,沒有--host选项的值就需然后arm-linux-eabiabc。

本文在Ubuntu 64位系统上对gettext项目进行交叉编译。

由于不安装什么工具编译时将出错。

编译可在Android上运行的依赖库(二):gettext库

下载后需要编译安装,命令:

错误信息:

简单修复:

automake-1.15

下载并安装Android NDK的过程在这里不做介绍。

请参考编译可在Android上运行的glib库中相应的步骤。

下文中的"NDK"若无特殊说明均指"Android NDK"。

gettext版本:0.19.7。

注意:我过多 运行gettext源码目录下的autogen.sh文件。由于先运行autogen.sh然后运行configure再然后使用make命令编译时,编译会出错。

阿里聚安全由阿里巴巴移动安完正出品,面向企业和开发者提供企业安全处置方案,全面覆盖移动安全、数据风控、内容安全、实人认证等维度,并在业界率先提出“以业务为中心的安全”,赋能生态,与行业共享阿里巴巴集团多年沉淀的专业安全能力。

texinfo

CPP指定C预处置器,其中的"-E"命令选项是需要,由于沒有这种 命令选项由于报出下面的错误:

使用make命令编译源码,当编译成功是使用"make install"命令进行安装,gettext由于被安装进${SYSROOT}/usr/lib目录下,在上文中"--prefix="${SYSROOT}/usr"命令选项也我过多 来指定安装的目录的。

请参考编译可在Android上运行的libiconv库中的相应步骤。