gpt4 book ai didi

macos - GCC Mac OS X 框架搜索路径 :/System/Library before/Library?

转载 作者:行者123 更新时间:2023-12-04 20:23:29 24 4
gpt4 key购买 nike

我正在尝试在 Mac OS X 上编译一个链接到 Python 的项目。我在 /Library/Frameworks 中有 Python 2.7 框架.我为 Mac OS X 4 编译,所以我在 /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks 中也有 Python 2.3 .如果我调用 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)

IE。它忽略了我的 /Library/Frameworks因为它是重复的(最后一个路径,它是 /Library/Frameworks 的符号链接(symbolic link)),然后在我的 2.7 之前找到它自己的 Python 2.3 框架。

我了解如何解决这个问题(例如,使用 -I 和包含目录的完整路径),但我对搜索顺序有些困惑。例如。链接器( ld) seems to search System/Library and Library in different order .我试过检查手册和谷歌,但显然我的技能太低了:)

我想我的问题是:
  • 这是正常行为吗?为什么 gcc按此顺序搜索,而 ld搜索方式不同?
  • 是否有任何精通框架的方法来解决这个问题,或者我必须使用普通的旧 -I旗帜?
  • 最佳答案

    我认为 gcc 和 ld 两者之间的顺序不同是一个错误。您可以通过向 llvm 和/或 Apple 提交错误来解决此问题。如果图书馆是第一个,我认为这会做你想要的。

    在此之前,您可以这样做:

    $ mkdir Frameworks
    $ ln -s /Library/Frameworks/Python.framework Frameworks
    $ gcc -FFrameworks -E t.c

    关于macos - GCC Mac OS X 框架搜索路径 :/System/Library before/Library?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3658016/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com