Makefile 在非标准前缀中安装glib失败

Makefile 在非标准前缀中安装glib失败,makefile,installation,glib,libtool,Makefile,Installation,Glib,Libtool,我正在尝试以非标准前缀安装glib,但在运行makeinstall时,我得到了以下信息: /bin/sh ../libtool --mode=install /usr/bin/install -c libgthread-2.0.la '/root/build/lib' libtool: install: error: cannot install `libgthread-2.0.la' to a directory not ending in /usr/local/lib 为什么我必须只在以/

我正在尝试以非标准前缀安装glib,但在运行
makeinstall
时,我得到了以下信息:

/bin/sh ../libtool --mode=install /usr/bin/install -c libgthread-2.0.la '/root/build/lib'
libtool: install: error: cannot install `libgthread-2.0.la' to a directory not ending in /usr/local/lib

为什么我必须只在以/usr/local/lib结尾的前缀中安装gthread?

我在Linux机器上编译MonetDB时也遇到了这个问题。以下是对我有效的解决方案/变通方法:始终在
/configure
之后清洁

在您的示例中,您应该能够做到:

./configure --prefix=/root/build && make clean && make && make install
我在一个关于apache httpd bug的文章中找到了解决方案,Joe Orton分享了:

重新运行“配置”后,通常需要执行“清除”

使用:


适合我。

您的配置正确吗?我的意思是
/configure--prefix=
?尝试
makeclean;保持清洁/configure--prefix=&&make&&makeinstall
我做了所有这些,但都没有用。最后我做了一些类似于
。/gcc-4.7.0/configure--prefix=/root/build/usr/local/
的工作来实现它;这是由于libtool或automake的一些奇怪之处,可能是树中存在过时的中间文件。我会尝试从零开始,解开一个新的源代码包,这是一个新的源代码树,就在tar归档中。它并没有说它必须是/usr/local/lib,而是说它必须以它结束,这仍然很奇怪<代码>libtool:错误:错误:无法将'libgimpcolor-2.0.la'安装到不以/usr/local/lib结尾的目录中。答案是可行的,但是除了运行
makeclean
之外,没有其他方法了吗。一个完整的构建大约需要15分钟,因为一个库似乎以某种方式硬编码前缀。。。
make clean 
make distclean