0

我正在开发一些使用 C++17 标准和 clangd-13.0 的项目。在我决定在其 CMakeLists 文件中添加使用 C99 标准的库之后的某个时间,现在即使在 cpp 文件中,clangd 也总是基于 C99 标准进行分析。

我的 CMakeLists 文件如下所示:

cmake_minimum_required(VERSION 3.21)
project(my_proj)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)

set(SOURCES include/some_header.h src/some_source.cpp)

# Adding library that mostly uses C code
add_subdirectory(lib/path/to/lib)
add_library(${PROJECT_NAME} STATIC ${SOURCES})
target_link_libraries(${PROJECT_NAME}
  imported_lib
)

我可以以某种方式将此库从 compile_commands 中排除或强制使用 C++17 标准吗?

编辑:在我删除 -std=c99 标志的声明后,问题仍然存在,clangd 将 cpp 代码分析为纯 C,即使 compile_commands.json 不包含-std库文件的任何参数

4

0 回答 0