在Mac上python-配置LDFLAGS
题
我有个问题与在OS X 10.6.2 python-config --ldflags
。
使用我的非系统python.org蟒安装:
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
但是,如果我建立一个C程序Python嵌入与上述LDFLAGS,它导致系统蟒被嵌入。这似乎-lpython2.5首先拾取所述系统蟒,一种在-L路径之前。
到目前为止,我得到它的工作的唯一方法是使用
LDFLAGS=-F/ -framework Python
但是,当涉及到分配我真的希望能够使用Python-配置。
这是怎么回事与停止它的工作如预期的库搜索路径?根据该男子页-L路径应的默认路径之前被搜索。
有没有一起的“忘了默认的搜索路径和搜索只-L指定的路径”,我可以添加到蟒蛇-config输出中得到它的工作?
该行的任何选项或者有没有什么办法来提取工作-framework标志从哪个Python是在路径上(将工作对于任何用户使用,即系统,python.org,MacPorts的或自己建)?
解决方案
对不起,回答我的问题,但我得到了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
到LDFLAGS 在OSX上,这确保了连接器 查找这两个名为.dylib和.a文件 链接路径上的目录之前 移动到下一个目录。