我正在尝试跨ARM编译systemd-213并在configure
期间收到错误
checking for library containing dlsym... -ldl
checking sys/capability.h usability... yes
checking sys/capability.h presence... yes
checking for sys/capability.h... yes
checking linux/btrfs.h usability... no
checking linux/btrfs.h presence... no
checking for linux/btrfs.h... no
checking for library containing clock_gettime... -lrt
checking for library containing cap_init... no
configure: error: *** POSIX caps library not found
我已经交叉编译了libcap,并在调用LDFLAGS
之前使用-L
echo $LDFLAGS
验证了将包含生成的库的目录添加到configure
。
错误来自configure.ac
AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library not found])])
我用objdump -t
检查了libcap.a和libcap.so,找到了cap_init的条目
00000108 g F .text 000000b4 cap_init <- libcap.a
00001240 g F .text 000000b4 cap_init <- libcap.so
我对autoconf没有多少经验,但我不明白为什么cap_init
无法找到。
我想我已经发布了相关信息,但如果需要,我可以提供更多信息。
答案 0 :(得分:5)
我有同样的问题,但我正在交叉编译pulseaudio
。问题不在于libcap.so
无法找到;问题是libattr.so
所需的libcap.so
无法找到。我在config.log
文件中看到了这个。
我的解决方案是在引导和配置之前将-lattr
添加到LDFLAGS
环境变量。
答案 1 :(得分:3)
在编译systemd-204时也遇到了同样的错误。解决方案是执行:
sudo apt-get install libcap-dev
答案 2 :(得分:0)
对我来说,这则消息:
meson.build:680:8: ERROR: Problem encountered: POSIX caps headers not found
首先要做到这一点(中心点)
yum install libcap-devel