在pypy翻译时指定已安装的本地库路径
我正在尝试在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
里面的 lib
和 include
目录添加到库和包含路径中,也就是说像 /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。
只需用 hg
或 git
拉取当前的代码,你就可以开始了……告诉我结果如何。谢谢!