gpt4 book ai didi

windows - 如何让 Clangd 在 Windows 上与 VS Code 一起正常工作

转载 作者:行者123 更新时间:2023-12-03 11:14:49 31 4
gpt4 key购买 nike

我无法让 clangd 为来自 SFML 的任何外部 header 提供自动完成功能。

我已经尝试在 Ubuntu VM 上执行相同的操作并且一切正常。 compile_commands.json 也已移至项目根目录。

项目树现在看起来像这样:

.clangd
--index
----main.cpp.1B607D111B8CF0BE.idx

build
--CMakeFiles etc

src
--main.cpp

CMakeLists.txt

compile_commands.json

CMakeLists.txt 包含以下内容:

cmake_minimum_required(VERSION 3.10)

project(test)

set(CMAKE_CXX_STANDARD 17)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

set(src_files
src/main.cpp)

set(SFML_DIR "D:/Libs/SFML/SFML-2.5.1-windows-vc15-64-bit/SFML-2.5.1/lib/cmake/SFML/")

find_package(SFML COMPONENTS graphics)

add_executable(test ${src_files})

target_link_libraries(test PRIVATE sfml-graphics)

target_include_directories(test PRIVATE D:/Libs/SFML/SFML-2.5.1-windows-vc15-64-bit/SFML-2.5.1/include)

compile_commands.json 包含以下内容:

[
{
"directory": "C:/Users/Joerg/projects/test/build",
"command": "C:\\PROGRA~1\\LLVM\\bin\\CLANG_~1.EXE @CMakeFiles/test.dir/includes_CXX.rsp -g -Xclang -gcodeview -O0 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -std=gnu++17 -o CMakeFiles\\test.dir\\src\\main.cpp.obj -c C:\\Users\\Joerg\\projects\\test\\src\\main.cpp",
"file": "C:/Users/Joerg/projects/test/src/main.cpp"
}
]

我也尝试过使用 MinGW Clang,其中相应的 compile_commands.json 如下所示:

[
{
"directory": "C:/Users/Joerg/projects/test/build nin",
"command": "C:\\msys64\\mingw64\\bin\\clang++.exe -std=gnu++17 -o CMakeFiles\\test.dir\\src\\main.cpp.obj -c C:\\Users\\Joerg\\projects\\test\\src\\main.cpp",
"file": "C:/Users/Joerg/projects/test/src/main.cpp"
}
]

我希望 clangd 为 SFML 命名空间 (sf::) 提供自动完成功能,就像它为 std 命名空间 (std::) 所做的那样。目前,当我写 #include <SFML/Graphics.hpp> 时,它找不到标题。 .它给了我这个错误信息: 'SFML/Graphics.hpp' 文件没有找到 clang(pp_file_not_found)

最佳答案

clangd 使用 compile_commands.json 获取 include 属性,但 clang 10.0 以下版本无法识别 .rsp 文件,例如 @CMakeFiles/test.dir/includes_CXX.rsp。这就是为什么您的 clangd 找不到某些头文件的原因。

关于windows - 如何让 Clangd 在 Windows 上与 VS Code 一起正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58468719/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com