首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mac上运行python-config ldflag

在mac上运行python-config ldflag
EN

Stack Overflow用户
提问于 2009-12-19 00:15:48
回答 1查看 2.7K关注 0票数 2

我对OS 10.6.2上的python-config --ldflags有一个问题。

使用我的非系统python.org python安装:

代码语言:javascript
复制
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的c程序,它会导致系统python被嵌入。在-L路径中的python之前,-lpython2.5似乎首先选择了系统python。

到目前为止,我唯一能让它工作的方法是

代码语言:javascript
复制
LDFLAGS=-F/ -framework Python

但是当涉及到发行版时,我真的希望能够使用python-config。

库搜索路径出了什么问题,使其无法按预期工作?根据手册页,应在搜索默认路径之前搜索-L路径。

有没有类似“忘记默认搜索路径,只搜索用-L指定的路径”之类的选项,我可以添加到python-config输出中以使其正常工作?

或者,有没有办法从path上的任何Python中提取工作的-framework标志(这将适用于用户正在使用的任何东西,例如系统、python.org、macports或自己构建的)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-19 00:33:55

很抱歉回答我自己的问题,但是我在pythonmac-sig邮件列表上得到了令人惊讶的快速回复,我也问了。这是当前python的一个错误:http://bugs.python.org/issue7541

建议的解决方法:

最简单的解决方法是打开终端窗口并执行以下命令:

cd /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config ln -s libpython2.5.a libpython2.5.dylib

这将确保OSX链接器知道libpython是一个共享库并链接到这个库。默认情况下,OSX链接器在整个链接器路径上搜索.dylib,然后才会查找.a文件。

编辑:进一步更新:

如果您可以在构建系统中添加特定于mac的标志,则可以将-Wl,-search_paths_first添加到OSX上的LDFLAGS,这将确保链接器在移动到下一个目录之前在链接路径上的目录中同时查找.dylib和.a文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1929180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档