6.49. Libffi-3.2.1

Libffi 库为各种调用规范提供了一个可移植的,高级编程接口。允许程序员在运行时,通过调用接口描述调用任意指定函数。

大致构建用时: 0.3 SBU
所需磁盘空间: 7.6 MB

6.49.1. 安装 Libffi

[Note]

Note

Libffi 与 GMP 相似,构建时会根据使用的处理器优化。如果需要构建的是另一个系统,设定 CFLAGS 和 CXXFLAGS 为你的架构指定成通用构建。如果不这样做,所有指向 libffi 的链接将触发非法操作错误。

修改 Makefile 将头文件安装到标准的 /usr/include 目录,而非 /usr/lib/libffi-3.2.1/include

sed -e '/^includesdir/ s/$(libdir).*$/$(includedir)/' \
    -i include/Makefile.in

sed -e '/^includedir/ s/=.*$/=@includedir@/' \
    -e 's/^Cflags: -I${includedir}/Cflags:/' \
    -i libffi.pc.in

编译 libffi 前的准备:

./configure --prefix=/usr --disable-static --with-gcc-arch=native

配置选项的含义:

--with-gcc-arch=native

确保 GCC 为当前系统进行优化。如果没有指定则会进行猜测,这样生成的代码在某些系统上是不正确的。如果生成的代码想要从本机系统复制到功能较弱的系统,则应该以功能较弱的系统作为参数。有关替代系统类型的详细信息,请参阅 gcc 手册中的 x86 选项

编译软件包:

make

用以下命令测试结果:

make check

安装软件包:

make install

6.49.2. Libffi 的软件包内容

安装的库: libffi.so

简要介绍

libffi

包含 libffi 的 API 函数。