如何解决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 举报,一经查实,本站将立刻删除。