我正在尝试在Mac OS X上编译一个链接到Python的项目.我有Python 2.7框架/Library/Frameworks.我为Mac OS X 4编译,所以我也有Python 2.3 /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks.如果我调用gcc与-F/Library/Frameworks和偷看什么用呢-v,我看到以下内容:
ignoring duplicate directory "/Library/Frameworks"
as it is a non-system directory that duplicates a system directory
<skipped>
#include "..." search starts here:
#include <...> search starts here:
<skipped>
/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks (framework directory)
/Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks (framework directory)
Run Code Online (Sandbox Code Playgroud)
即它忽略了我,/Library/Frameworks因为它是一个副本(最后一个路径,它是一个符号链接/Library/Frameworks)然后在我的2.7之前找到它自己的Python 2.3框架.
我理解如何解决这个问题(例如使用-I包含目录的完整路径),但我对搜索顺序感到有些困惑.例如,链接器(ld)似乎以不同的顺序搜索系统/库和库.我试过检查手册和谷歌,但显然,我的技能太低了:)
我想我的问题是:
gcc按此顺序ld搜索,而搜索方式不同?-I标志?小智 4
我认为 gcc 和 ld 两者之间的顺序不同是一个错误。您可以通过向 llvm 和/或 Apple 提交错误来修复该问题。如果图书馆是第一个,我想这会做你想要的。
在那之前,您可以执行以下操作:
$ mkdir Frameworks
$ ln -s /Library/Frameworks/Python.framework Frameworks
$ gcc -FFrameworks -E t.c
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7350 次 |
| 最近记录: |