在pypy翻译时指定已安装的本地库路径

1 投票
1 回答
790 浏览
提问于 2025-04-16 13:35

我正在尝试在Mac电脑上构建最新的pypy代码库。其中一个需要的库,libintl,已经安装在$HOME/opt/local/lib这个位置。我使用之前构建好的pypy-c来运行,

pypy-c translate.py -Ojit --ldflags=-L~/opt/local/lib --cflags=-L~/opt/local/lib

但是大约过了半个小时,它就卡住了,出现了

[translation:ERROR]     ld: library not found for -lintl
[translation:ERROR]     collect2: ld returned 1 exit status
[translation:ERROR]     make: *** [pypy-c] Error 1
[translation:ERROR]     """)

那么我该怎么指定这个库的路径呢?我想编译和运行自定义的rpython程序时也会遇到同样的问题。

1 个回答

3

新的环境变量

说到时机,我刚刚添加了这个功能!现在你可以在翻译时设置一个 PYPY_LOCALBASE 的环境变量,比如:

PYPY_LOCALBASE=/Users/tav/local pypy-c translate.py -Ojit

这样一来,它会把 PYPY_LOCALBASE 里面的 libinclude 目录添加到库和包含路径中,也就是说像 /Users/tav/local/lib/Users/tav/local/include 这样的路径。

关于 Fink 和 Macports 的问题

我已经有一段时间没用过这两个工具了,但之前 gettext 这个包在这些包管理系统里总是让我很头疼——包括 CPython 在内的构建过程常常会被 Macports 等提供的包搞得一团糟,比如这个链接:http://bugs.python.org/issue7679

现在在 OS X 上的翻译提示应该可以工作了

我花了几周时间来修复在 OS X 上构建 PyPy 时遇到的各种边缘情况。希望从昨晚开始,你只需要简单地运行 pypy-c translate.py -Ojit,就能顺利构建,前提是你有普通的 Xcode。

只需用 hggit 拉取当前的代码,你就可以开始了……告诉我结果如何。谢谢!

撰写回答