微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

clang-tidy 无法识别标准库

如何解决clang-tidy 无法识别标准库

我有一个简单的程序,可以成功编译并运行,但我无法让程序整齐地工作。

我的程序:

#include <iostream>

int main() {
    return 0;
}

CMakeLists.txt:

cmake_minimum_required(VERSION 3.1)
project(myProg CXX)
set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
set(CMAKE_CXX_STANDARD 14)
add_executable(myProg test.cpp)

我使用 compile_commands.json 生成一个 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON 以与 clang-tidy 一起使用:

[
{
  "directory": "/Users/me/myProj/build","command": "/usr/bin/clang++ -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -mmacosx-version-min=10.15 -o CMakeFiles/myProg.dir/test.cpp.o -c /Users/me/myProj/test.cpp","file": "/Users/me/myProj/test.cpp"
}
]

这编译并成功运行。

现在,当我运行 clang-tidy -p=/Users/me/myProj/build /Users/me/myProj/test.cpp 时,我得到了:

test.cpp:1:10: error: 'iostream' file not found [clang-diagnostic-error]

在写这个问题时,我意识到当我在compile_commands.json添加以下行时,clang-tidy可以成功找到iostream:

-I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1

此外,当我没有在我的 cmake 文件中指定编译器并且我在 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ 中使用认编译器时,clang-tidy 运行没有错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。