我正在编译一个嵌入Python的程序,尤其是Python v3.1。在我的系统上,我有多个版本的Python框架:3.1、2.5、2.6。当我在编译时将“ -framework Python”传递给g ++时,g ++似乎引入了2.6版(位于“ / System / Library / Frameworks /”)而不是3.1版(位于“ / Library / Frameworks /”)错误。这两个路径都在框架搜索路径中,从以详细模式尝试相同的编译(将-v传递到g ++)可以明显看出。
尽管这似乎很简单,但是我在任何有关g ++,ld或xcode的文档中都找不到提及它的内容。目前,我通过将/System/Library/Frameworks/Python.framework移至/System/Library/Frameworks/Python.framework.moved来成功完成编译,但这是一个丑陋的临时解决方案。
那么,有谁知道解决此问题的最佳方法是什么?特别是,我希望能够针对Python框架的正确版本编译该程序,而不管系统上安装的任何其他版本。
谢谢。
首先尝试Current在Python框架中更改符号链接/Library/Frameworks:
$ cd /Library/Frameworks/Python.framework/Versions
$ ls -l
total 4
drwxrwxr-x 8 root admin 340 Aug 31 02:10 2.6/
drwxrwxr-x 8 root admin 340 Oct 6 21:56 2.7/
drwxrwxr-x 7 root admin 306 Oct 6 14:00 3.1/
lrwxr-xr-x 1 root admin 3 Oct 7 00:33 Current@ -> 2.7
$ sudo rm Current
$ sudo ln -s 3.1 Current
(更新)我希望没有进行测试就可以确保指向正确版本的Current链接/Library/Frameworks就足够了。但是,基于OP的实验,您可能还需要修改其中的类似链接/System/Library。通常,修改任何内容都是一个坏主意,/System/Library因为其中的任何内容都被视为OS X的一部分,并且由Apple管理,因此,您所做的任何更改充其量只能被下一次擦除System Update,最坏的情况是破坏您的系统。在这种情况下,由于链接可能仅在这种情况下使用,即链接嵌入式库,因此可能不会有太大的不同Current。如果您确实很挑剔,则可以考虑在完成后恢复原始值。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。