本文共 1716 字,大约阅读时间需要 5 分钟。
Hi, On 2011-09-29 13:03:48 +0200, Peter Kruse wrote: > Hello, > > The recently[1] added function `func_replace_sysroot' adds an '=' to a > given path. > But this path is then added to $dependency_libs in the .la file like this: > > dependency_libs=' -L=/usr/lib' > > resulting in errors like: > > libtool: link: warning: cannot determine absolute directory name of > `=/usr/lib' > > what is the reasoning for this equal sign? I have configured some > recent versions > of some software packages that use this libtool (pcre, glib) with > --with-sysroot and my PATH indeed starts with that directory. Some user ran into the same problem with MPFR, but it doesn't seem to be a bug, so that I think this bug should be closed. You need a more recent Libtool (2.4+) to link. The Libtool 2.4+ NEWS file says: New in 2.4 2010-09-22: git version 2.2.11a, Libtool team: * New features: - Sysroot support. This allows you to build cross-compiled packages with the same prefix that will be used on the destination machine, and still find dependent libraries under the compiler's "sysroot". Without sysroot support, paths internal to the build system may leak into the product of the build. Sysroot support is disabled unless the --with-sysroot configure option is passed to configure, because .la files generated with sysroot support will _not_ be usable in general with older Libtools.There is technical information here:
遇到这个问题上网搜索了一下,是libtool的版本问题,后来查看一下libXext-1.2.0中自带的libtool里真是2.2.0版本的,而我编译libxcb时使用的libtool版本为2.4.2,果然删除掉旧的,从/usr/bin/libtool复制一个过来。
linker: /usr/x86_64-suse-linux/bin/ld -m elf_x86_64 (gnu? yes)
libtool: (GNU libtool) 2.4.2 automake: automake (GNU automake) 1.13.4 autoconf: autoconf (GNU Autoconf) 2.69转载地址:http://fzzji.baihongyu.com/