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
mylibfoo
,这取决于我如何使用--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