在树莓派上将 libffi 编译为静态库
Posted
技术标签:
【中文标题】在树莓派上将 libffi 编译为静态库【英文标题】:compile libffi as static library on raspberry pi 【发布时间】:2015-11-24 04:04:55 【问题描述】:我正在尝试编译 libffi-3.2.1 的静态库,但没有成功。
-
cd libffi-3.2.1
./configure --prefix=/home/pi/libraries/libffi --enable-static --disable-shared
制作
输出如下:
制作 armv6l-unknown-linux-gnueabihf : 0 * all-all
make[1]: 进入目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf'
制作 'AR_FLAGS=' 'CC_FOR_BUILD=' 'CFLAGS=-O3 -fomit-frame-pointer -fstrict-aliasing -ffast-math -Wall -fexceptions' 'CXXFLAGS=-g -O2' 'CFLAGS_FOR_BUILD=' 'CFLAGS_FOR_TARGET=' ' INSTALL=/usr/bin/install -c' 'INSTALL_DATA=/usr/bin/install -c -m 644' 'INSTALL_PROGRAM=/usr/bin/install -c' 'INSTALL_SCRIPT=/usr/bin/install -c' 'JC1FLAGS=' 'LDFLAGS=' 'LIBCFLAGS=' 'LIBCFLAGS_FOR_TARGET=' 'MAKE=make' 'MAKEINFO=/bin/bash /home/pi/libffi-3.2.1/missing makeinfo ' 'PICFLAG=' 'PICFLAG_FOR_TARGET=' 'RUNTESTFLAGS=' 'SHELL=/bin/bash' 'exec_prefix=/home/pi/libraries/libffi' 'infodir=/home/pi/libraries/libffi/share/info' 'libdir=/home/pi/libraries/ libffi/lib' 'mandir=/home/pi/libraries/libffi/share/man' 'prefix=/home/pi/libraries/libffi' 'AR=ar' 'AS=as' 'CC=gcc' 'CXX= g++' 'LD=/usr/bin/ld' 'NM=/usr/bin/nm -B' 'RANLIB=ranlib' 'DESTDIR=' 全递归
make[2]: 进入目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf'
使一切都包括在内
make[3]: 进入目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/include'
make[3]: 'all' 无事可做。
make[3]: 离开目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/include'
在测试套件中制作所有内容
make[3]: 进入目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/testsuite'
make[3]: 'all' 无事可做。
make[3]: 离开目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/testsuite'
尽在人中
make[3]: 进入目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/man'
make[3]: 'all' 无事可做。
make[3]: 离开目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf/man'
make[3]: 进入目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf'
恢复=: && backupdir=".am$$" && \
am__cwd=pwd
&& CDPATH="$ZSH_VERSION+.:" && cd .. && \
rm -rf $backupdir && mkdir $backupdir && \
if (/bin/bash /home/pi/libffi-3.2.1/missing makeinfo --version) >/dev/null 2>&1;然后 \
对于 ../doc/libffi.info 中的 f ../doc/libffi.info-[0-9] ../doc/libffi.info-[0-9][0-9] ../doc/libffi .i[0-9] ../doc/libffi.i[0-9][0-9];做 \
如果测试 -f $f;然后 mv $f $backupdir;恢复=MV;别的 :;菲; \
完毕; \
别的 :;菲&&\
cd "$am__cwd"; \
如果 /bin/bash /home/pi/libffi-3.2.1/missing makeinfo -I doc -I ../doc \
-o ../doc/libffi.info ../doc/libffi.texi; \
然后 \
rc=0; \
CDPATH="$ZSH_VERSION+.:" && cd ..; \
别的 \
rc=$?; \
CDPATH="$ZSH_VERSION+.:" && cd .. && \
$restore $backupdir/* echo "./../doc/libffi.info" | sed 's|[^/]*$||'
; \
菲; \
rm -rf $备份目录;退出 $rc
/home/pi/libffi-3.2.1/missing:第 81 行:makeinfo:找不到命令
警告:您的系统上缺少“makeinfo”。
仅当您修改了“.texi”文件时才需要它,或者
任何其他间接影响手册方面的文件。
你可能想要安装 Texinfo 包:
http://www.gnu.org/software/texinfo/
虚假的 makeinfo 调用也可能是
使用有缺陷的“make”(AIX、DU、IRIX),在这种情况下,您可能
想要安装 GNU make:
http://www.gnu.org/software/make/
Makefile:1408: 目标“../doc/libffi.info”的配方失败
make[3]: * [../doc/libffi.info] 错误 127
make[3]: 离开目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf'
Makefile:1596: 目标“全递归”的配方失败
make[2]: [全递归] 错误 1
make[2]: 离开目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf'
Makefile:730:目标“全部”的配方失败
make[1]: [all] 错误 2
make[1]: 离开目录'/home/pi/libffi-3.2.1/armv6l-unknown-linux-gnueabihf'
Makefile:607: 目标 'all-all' 的配方失败
make: * [all-all] 错误 2
我错过了什么? 问候
【问题讨论】:
【参考方案1】:missing: line 81: makeinfo: command not found WARNING: 'makeinfo' is missing on your system
尝试安装texinfo
:
sudo apt-get install texinfo
【讨论】:
以上是关于在树莓派上将 libffi 编译为静态库的主要内容,如果未能解决你的问题,请参考以下文章
使用 Visual Studio 2010 将 libexif 编译为静态库 - 然后从 Visual C++ 项目链接