我正在尝试在 CentOS 6 x64 上编译最新版本的 XBMC,但./configure
我得到:
checking for TAGLIB... no
configure: error: Could not find a required library. Please see the README for your platform.
我尝试编译 XBMC 附带的 taglib 并从 github 下载最新版本。两者都编译得很好,但错误仍然存在。
[root@xbmc xbmc]# find /usr -name libtag*
/usr/local/lib/libtag.a
/usr/local/lib/libtag.so
/usr/local/lib/libtag_c.so.0
/usr/local/lib/libtag.so.1.12.0
/usr/local/lib/libtag.so.1
/usr/local/lib/libtag_c.so
/usr/local/lib/libtag_c.a
/usr/local/lib/libtag_c.so.0.0.0
/usr/lib64/libtag.so
/usr/lib64/libtag_c.so.0
/usr/lib64/libtag.so.1
/usr/lib64/libtag.so.1.6.1
/usr/lib64/libtag_c.so
/usr/lib64/libtag_c.so.0.0.0
/usr/lib/libtag.so
/usr/lib/libtag_c.so.0
/usr/lib/libtag.so.1.12.0
/usr/lib/libtag.so.1
/usr/lib/libtag_c.so
/usr/lib/libtag_c.so.0.0.0
有什么想法如何解决这个问题吗?
更新
@slm
Package taglib-devel-1.6.1-1.1.el6.x86_64 already installed and latest version
这些是配置有关 taglib 的帮助列表的唯一选项:
TAGLIB_CFLAGS C compiler flags for TAGLIB, overriding pkg-config
TAGLIB_LIBS linker flags for TAGLIB, overriding pkg-config
答案1
- 删除通过 yum 安装的“taglib 1.6”。
taglib
从 Github编译并安装在/usr
.cmake -DCMAKE_INSTALL_PREFIX=/usr/
configure
通过更改ac_status=$?
为ac_status=0
非零长度$TAGLIB_LIBS
和的测试来编辑 xbmc脚本$TAGLIB_CFLAGS
:if test -n "$TAGLIB_CFLAGS"; then ac_status=0 … if test -n "$TAGLIB_LIBS"; then … ac_status=0
答案2
你有吗标签库和标签库开发安装了库。您通常需要-开发库以便针对它进行编译。
% yum search taglib
taglib.x86_64 : Audio Meta-Data Library
taglib-devel.x86_64 : Header files, libraries and development documentation for taglib.
像这样安装:
% yum install taglib-devel
另请注意标签库安装在/usr/local
.根据您的系统,此区域可能不在应用程序查找它的路径上,因此configure
您用来构建makefiles
for xbmc 的命令可能需要您使用某种--taglib=...
类型的开关指定此位置。
configure --help
在为特定值构建 xbmc 时,请检查以获取更多信息。
答案3
我也遇到过同样的问题,问题出在 tag-lib 版本上。你有 1.6,它需要 1.8。 (检查配置日志)。我无法给你一个解决方案,因为我没有尝试任何东西,但是“也许”,改变 tag-lib 版本要求可以解决编译问题(不确定是否真的需要 1.8。一些 XBMC 开发人员应该回答这个问题。)
答案4
就我而言,我使用的是 Centos 7,问题肯定是 taglib 的版本。
在配置文件中我们有这样的内容。
pkg-config --exists --print-errors "taglib >= 1.9"
哪个给我
Requested 'taglib >= 1.9' but version of TagLib is 1.8.0
在配置脚本中手动将所有 1.9 要求更改为 1.8 使其通过。
但请注意,如果 1.9 版本是预期的,那么它们应该是很好的理由,所以这可能会打破其他地方的代码和平。