什么是 GCC 默认包含目录?

新手上路,请多包涵

当我使用 gcc 编译一个非常简单的源文件时,我不必指定标准包含文件(例如 stdio 或 stdlib)的路径。

GCC 如何知道如何找到这些文件?

它内部是否有 /usr/include 路径硬连线,或者它会从其他操作系统组件获取路径?

原文由 Raxvan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 890
2 个回答

为了弄清楚 gcc / g++ 使用的默认路径以及它们的优先级,您需要检查以下命令的输出:

  1. 对于 C
     gcc -xc -E -v -

  1. 对于 C++
     gcc -xc++ -E -v -

功劳归于 Qt Creator 团队

原文由 Ihor Kaharlichenko 发布,翻译遵循 CC BY-SA 4.0 许可协议

总结其他答案:

对于 C++:

c++ -xc++ /dev/null -E -Wp,-v 2>&1 | sed -n 's,^ ,,p'

对于 C:

cc -xc /dev/null -E -Wp,-v 2>&1 | sed -n 's,^ ,,p'

原文由 Johan Boulé 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题