Mac 上的 python-config ldflags
我在 OS X 10.6.2 上遇到 python-config --ldflags
问题。
使用我的非系统 python.org python 安装:
robin-mbp:~ robince$ which python
/Library/Frameworks/Python.framework/Versions/2.5/bin/python
robin-mbp:~ robince$ python-config --ldflags
-L/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config -ldl -lpython2.5
但是如果我使用上述 LDFLAGS 构建嵌入 Python 的 ac 程序,则会导致系统 python 被嵌入。看起来 -lpython2.5 首先获取系统 python,然后是 -L 路径中的 python。
到目前为止,我让它工作的唯一方法是使用,
LDFLAGS=-F/ -framework Python
但是当涉及到分发时,我真的很希望能够使用 python-config。
库搜索路径发生了什么导致其无法按预期工作?根据手册页 -L 路径应在默认路径之前搜索。
是否有任何类似于“忘记默认搜索路径并仅搜索用 -L 指定的路径”的选项,我可以将其添加到 python-config 输出以使其正常工作?
或者有什么方法可以从路径上的任何 Python 中提取工作框架标志(这适用于用户使用的任何内容,即系统、python.org、macports 或自己构建的)?
I have a problem with python-config --ldflags
on OS X 10.6.2.
Using my non-system python.org python install:
robin-mbp:~ robince$ which python
/Library/Frameworks/Python.framework/Versions/2.5/bin/python
robin-mbp:~ robince$ python-config --ldflags
-L/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config -ldl -lpython2.5
But if I build a c program embedding Python with the above LDFLAGS, it results in the system python being embedded. It seems -lpython2.5 is picking up the system python first, before the one in the -L path.
So far the only way I've got it to work is with
LDFLAGS=-F/ -framework Python
but when it comes to distributing I'd really like to be able to use python-config.
What is going on with the library search path that stops it working as expected? According to the man page -L paths should be searched before the default path.
Is there any option along the lines of 'forget the default search path and search only paths specified with -L' that I could add to python-config output to get it to work?
Or is there any way to extract the working -framework flags from whichever Python is on the path (that would work for whatever the user is using, ie system, python.org, macports or own built)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
很抱歉回答我自己的问题,但我在 pythonmac-sig 邮件列表上得到了令人惊讶的及时答复,我也在那里问过。这是当前 python 的一个错误: http://bugs.python.org/issue7541
建议的解决方法:
编辑:进一步更新:
Sorry to answer my own question but I got an amazingly prompt reply on the pythonmac-sig mailing list where I also asked. It is a bug with current python: http://bugs.python.org/issue7541
Suggested workaround:
EDIT: Further update: