Mac 下 C++ 工具:

参考资料:

使用 clang++

自带的 apple clang 由 Xcode 提供,还安装在 /usr/bin/clang

使用 brew 安装最新的 llvm 工具链,brew install llvm,使用安装的 clang/clang++/lldb

使用 clangd

可以选择使用 compile_flags.txt 配置文件,或者使用 .clangd 配置文件。当前推荐使用 .clangd 配置文件的方式。

如果使用 compiler_flags.txt,先使用clang -E -xc++ - -Wp,-v < /dev/null查询搜索目录,使用结果创建改配置文件:

--driver-mode=g++
-xc++
-std=c++17

-isystem
/usr/local/opt/llvm/include/c++/v1
-isystem
/usr/local/opt/llvm/lib/clang/17/include
-isystem
/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include
-isystem
/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/System/Library/Frameworks

-isysroot
/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk

推荐:

如果使用 .clangd,大部分情况下是正常解析的,其最小配置例如:

CompileFlags: # Tweak the parse settings
  Add: [-std=c++17]
  Compiler: clang++
  CompilationDatabase: .

cmake

编译好后,配置好clangd的 query-driver=clang++ ,结合cmake 生成的 compile_commands.json 可以很好解析整个项目工程。(query-driver指定的路径只是白名单,需要结合编译数据库使用)