【发布时间】:2014-07-02 17:30:57
【问题描述】:
我遇到了与 unanswered question 类似的问题。我将我的代码提交给构建系统以使用其 g++ 二进制文件。但是,构建被移动到具有随机生成名称的临时路径(例如/temp-build/1ab3fDg/...),而 g++ 本身没有重新编译并且 .la 没有刷新(不可行)。因此,当 libtool 查找 libstdc++.so 时,它会在 /temp-build/1ab3fDg/libstdc++.la 文件中查找它的路径并看到:
libdir=/temp-build/J2213bgB/.../
这是 gcc 最初编译的任何随机路径的目录。实际的 .so 与 .la 文件 (/temp-build/1ab3fDg) 位于同一目录中,但 libtool 遵循不正确的 libdir 路径。
我想知道是否有办法告诉 libtool 忽略 .la 文件并在我指定的目录中查找 libstdc++。或者,这个问题还有其他可能的解决方案吗?我正在使用 autoconf/automake 生成 Makefile。
【问题讨论】:
-
我想到的一件事是使用 sed 将行替换为正确的路径。如果您具有正确的权限,这将起作用。不幸的是,我没有,所以我最终为短期编写了一个 Makefile。
标签: c++ linker autotools libtool