【发布时间】:2015-03-21 01:53:27
【问题描述】:
我正在尝试使用以下命令在 Mac OS X Yosemite(使用 clang)上从源代码构建 libjit:
./auto_gen.sh
./configure --prefix=/path/to/my/own/directory
make
make install
之后我发现链接器使用clang test.c -o test -ljit 命令报告了 library-not-found 错误。我检查了安装库的目录,发现它安装到/usr/local/lib/x86_64/libjit*而不是/usr/local/lib/libjit*,导致链接错误。
我还在我的 Archlinux 机器上构建了库,一切都很好。比较在不同操作系统上生成的两个 makefile,我发现 libdir 变量不同。
我在 Debian 上搜索并访问了有关 multiarch 的页面,但我不确定这个问题是否与该机制有关。
那么如何像其他库一样将安装目录更改为/usr/local/lib?或者,如果这是正确的方法,我怎样才能使链接器正常工作?
【问题讨论】:
-
在这种情况下,您必须深入挖掘 - 查看 libjit
configure.ac脚本,看看它是否在做一些奇怪的事情。没有像这个 AFAIK 这样的内置功能。这种骇人听闻的事情发生得比人们想象的要多:-(。阅读--help输出也可能会提供信息。如果脚本确实在做一些奇怪的事情,您将不得不对其进行编辑。 -
@TomTromey 非常感谢。我已经找到原因了。有时 automake 确实不容易使用,尤其是在出现不同行为的情况下:(
标签: makefile clang configure automake