Compilation libtool.la文件中的相对或独立路径

Compilation libtool.la文件中的相对或独立路径,compilation,linker,autotools,libtool,Compilation,Linker,Autotools,Libtool,我的.la文件在依赖项_libs=部分和libdir=部分都有完整的路径名,这使得将我的库复制到不同的机器(相同的拱门但不同的路径结构)变得很困难。除了使用一些脚本来破解.la文件以调整新机器上的路径之外,还有什么解决方案 ==详细信息== 当我/配置时;制作让installmylibfoo,这取决于我如何使用--prefix、--exec prefix和DESTDIR=标志,我将在libfoo.la文件中获得一个条目,该条目读取libdir=/dir1/lib,并且我将拥有实际的。因此文件与l

我的
.la
文件在
依赖项_libs=
部分和
libdir=
部分都有完整的路径名,这使得将我的库复制到不同的机器(相同的拱门但不同的路径结构)变得很困难。除了使用一些脚本来破解
.la
文件以调整新机器上的路径之外,还有什么解决方案

==详细信息==

当我
/配置时;制作让install
my
libfoo
,这取决于我如何使用
--prefix
--exec prefix
DESTDIR=
标志,我将在
libfoo.la
文件中获得一个条目,该条目读取
libdir=/dir1/lib
,并且我将拥有实际的
。因此
文件与
libfoo.la
位于同一目录中。一切都很好(就与
libfoo
的链接而言),直到我将它们打包并放到另一台机器上

假设我的第二台机器上有
libbar
,它依赖于
libfoo
。当我使用我的
-L/dir2/lib
标志查找
-lfoo
时,
libbar
编译/链接失败,因为
libfoo.la
文件期望foo在
/dir1/lib
中安装(从第一台机器开始),而实际上它在
/dir2/lib
中。然后,我需要用正确的路径替换所有的
dir1
,这两个路径可能既长又复杂

dependency\u libs=
行也以类似的方式发挥作用


如何避免此问题?

您尝试了吗?我尝试了,这就是我提到前缀和DESTDIR标志的原因。我所能做的就是把我的输出放在一个特定的目录中。。。同样的问题是,.la文件会有一个绝对路径,所以当我移动它们时会遇到问题。你找到解决问题的方法了吗?除了破解
.la
文件。这是几年前的事了,但我记得从来没有找到一个好的解决方案:-\n只是偶然发现了这个问题,并且在交叉编译时仍在努力解决这个问题。在进行正确的安装时,一定可以提供一个sysroot或类似于libtool的东西?手动编辑.la依赖项路径非常令人沮丧。或者不在主机上使用makeinstalldestdir将库安装到稍后可以复制到目标的sysroot上是更好的做法吗?这么多问题D