‘iostream‘ file not foundclang(pp_file_not_found)

概要

在 macOS 用 VSCode 打开 test.cpp 文件, 使用 CMake 构建, 生成了 compile_commands.json 看起来也正常。遇到 iostream 头文件画红色波浪线的报错, 也无法跳转。最后查出来是 brew install 了 LLVM 并且(莫名其妙的)放到了 PATH 里导致的。

环境说明 - VSCode

我是使用 clangd, clang-tidy 插件来配置C++代码补全、跳转的,微软的 cpptools 插件虽然安装了但是配置了如下内容来禁用intellisence,整体仍然是走的 clangd:

json 复制代码
    // Microsoft CppTools plugin
    "C_Cpp.intelliSenseCacheSize": 1024,
    "C_Cpp.intelliSenseEngine": "disabled",
    "C_Cpp.autocomplete": "disabled",
    "C_Cpp.errorSquiggles": "disabled",

问题根源

~/.zshrc 乱入了这句:
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"

这导致 which clang 显示的 brew 安装的 clang。

然而我没设置 CC, CXX 两个环境变量, 导致 cmake 构建时候找到的是 apple clang,和 homebrew 的 clang 不能很好的配合起来。

解决方法很简单, 干掉 ~/.zshrc 里 PATH 中的 homebrew 的 llvm 即可。

其他

'iostream' file not foundclang(pp_file_not_found) #425 这个帖子不适合我的情况。

相关推荐
小保CPP11 分钟前
OpenCV C++基于模糊数学的图像滤波
c++·人工智能·opencv·计算机视觉
明日清晨1 小时前
VS2022禁用 NRVO/返回值优化(不调用拷贝构造函数处理方式)
c++
阿米亚波1 小时前
【C++ STL】std::array
java·开发语言·c++
choumin1 小时前
结构型模式——组合模式
c++·设计模式·组合模式·结构型模式
努力努力再努力wz2 小时前
【分布式系统与 RPC 框架系列】从单机瓶颈到远程调用:一文理解分布式架构与 RPC 原理
linux·网络·c++·分布式·网络协议·rpc·架构
神仙别闹2 小时前
基于C++实现(控制台)景区旅游管理系统
开发语言·c++·旅游
hold?fish:palm14 小时前
kv存储主从复制的设计与实现
c++·redis·后端
啦啦啦啦啦zzzz14 小时前
算法:贪心算法
c++·算法·leetcode·贪心算法
charlie11451419114 小时前
现代C++工程实践 WeakPtr 实战(三):WeakPtrFactory 与「最后成员」惯用法
开发语言·c++·开源项目·现代c++
JetComXCpp16 小时前
给 Win32 窗口加上毛玻璃效果——纯 D3D11 实现,零依赖
c++