【问题标题】:What is the default path for OSX system include files when building a C++ application?构建 C++ 应用程序时 OSX 系统包含文件的默认路径是什么?
【发布时间】:2011-07-16 05:03:48
【问题描述】:

我正在命令行构建一个 C++ 应用程序(使用 make 和一个开源库 (Xerces 2.8))。其中一个文件包括一个 OSX 系统文件,

#include <TextUtils.h>

当我键入make -n 以确定用于编译给定文件的命令时,没有提供的系统框架文件的包含路径。因此,我假设在 OSX 上 gcc 编译器会在默认位置查找系统包含文件。

我想知道这个位置是什么。当我搜索 TextUtils.h 时,我会在不同位置看到许多版本的文件,其中包括几个不同的候选位置,可能是默认位置。

如何确定系统用于系统包含文件的默认路径?

【问题讨论】:

  • 我看过那个问题,它与我的场景无关(我的问题没有在那里得到回答),因为这个问题是关于 Xcode,而我的问题是关于运行gcc 直接在命令行中。
  • 抱歉,我最初的反应是可能重复,遗憾的是,它不允许我删除 Close。但我希望这里的评论应该阻止人们投票进一步关闭它。

标签: c++ macos


【解决方案1】:

执行以下命令

# echo "" | gcc -xc - -v -E

将输出 gcc 的内置配置,其中默认包含。

【讨论】:

  • 谢谢。这指明了方向。但是,上述命令的相关结果指向/System/Library/Frameworks,而文件的实际路径是/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A /标题。你能解释一下吗?
  • 你能解释一下这到底是做什么的吗?我看到它给了我默认的包含路径,但我该如何更改它?
  • 它预处理一个空文件(由 echo 在 stdin 上提供)并显示编译过程各个阶段的命令行。默认值是我认为来自规范文件,但我对这些了解不多。您至少可以使用-nostdinc 忽略默认路径
猜你喜欢
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 2016-07-10
  • 1970-01-01
相关资源
最近更新 更多