【问题标题】:how can include <> ignore system default header file path(usr/include)?如何包含 <> 忽略系统默认头文件路径(usr/include)?
【发布时间】:2020-04-19 07:19:54
【问题描述】:

我有一个c++项目,构建过程是由cmakelist组织的,编译卡在一个点,提示g++找不到json/json.h,我检查了我的标准头路径(/usr/include),确实有这个听众文件。经过一段时间的努力,我发现这个项目使用了它自己的第三方目录(不是/usr/include)中的头文件,并且include_directory路径是我错误设置的!!这让我很不高兴,因为#include 应该首先搜索标准头文件路径(/usr/include)!!??

【问题讨论】:

  • 我不确定我是否完全理解了这个问题,但是搜索的目录取决于编译器的配置和命令行上传递的选项。例如,gcc 具有 -nostdin 选项以防止在“标准”系统位置进行搜索。

标签: c++ cmake include


【解决方案1】:

本文档
https://en.cppreference.com/w/c/preprocessor/include
谈到包含 ""
“典型的实现首先搜索当前文件所在的目录,只有在找不到文件时,才搜索标准的包含目录”

我不确定我是否非常了解您的问题,但是, 如果json/json.h 存在于您的本地目录中, 可能是你应该在"" 中包含这个头文件吗?

【讨论】:

    猜你喜欢
    • 2022-10-23
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    相关资源
    最近更新 更多