windows下面有类似bear这样的通过makefile生成compile_commands.json的工具吗

:cold_sweat:感觉linux是与我无缘了,我现在想想能不能在windows下面把emacs lsp-mode玩转

用cmake+ninjia/nmake CMakeLists.txt里添加

if(NOT MSVC_IDE)
  set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
  add_custom_target(
    clangd ALL
    ${CMAKE_COMMAND} -E copy_if_different
    ${CMAKE_BINARY_DIR}/compile_commands.json
    ${CMAKE_SOURCE_DIR}
    )
  add_dependencies(你的项目 clangd)
endif()

如果你是vs的工程的话,可以用我写的vs_export.可以分析sln工程,导出compile_commands.json。cmake的话,生成ninja的可以。如果你是qmake的工程,qtcreator 7.0版本支持导出compile_commands.json。qtcreator 7.0也集成的clangd,不过可以不开启。

直接用 CMake + Ninja 比较方便生成 compile_commands.json。 这样编译就可以

cmake -S . -B build -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=1
cmake --build build

参考 clangd 的官方文档:Getting started

CMake 使用指南:
英文版:An Introduction to Modern CMake · Modern CMake

中文版:Introduction · Modern CMake