我的
当我使用
假设我在第二台机器上有依赖于
如何避免这个问题?
.la
文件在 dependency_libs=
和 libdir=
部分都有完整的路径名,这使得将我的库复制到其他机器(同一架构但不同路径结构)变得困难。 除了编写某些脚本来修改新机器上路径的方式,还有什么解决方法吗?当我使用
--prefix
,--exec-prefix
和 DESTDIR=
标志进行 ./configure; make; make install
安装我的 libfoo
时,会在 libfoo.la
文件中得到一个条目,该条目读取 libdir=/dir1/lib
,而我实际上将 .so
文件放在与 libfoo.la
相同的目录中。 这时,只要将它们打包并放在另一台机器上,就会出现问题。假设我在第二台机器上有依赖于
libfoo
的 libbar
。 当我使用 -L/dir2/lib
标志查找 -lfoo
时,由于 libfoo.la
文件期望 foo 已安装在 /dir1/lib(来自第一台机器),但实际上它在 /dir2/lib 中,所以会导致 libbar
的编译/链接失败。我需要将所有的 dir1
替换为正确的路径,这两个路径可能都很长且复杂。如何避免这个问题?
.la
文件。 - amaslenn