Skip to content

从QTCreator转移到vscode中进行开发时,VS的clangd插件提示找不到QT的标准头文件 #2678

@llccde

Description

@llccde

问题描述:
在QTcreator中没有任何问题
但是在vscode中编辑代码时,clangd插件提示找不到QT的头文件,没有测试std标准库的头文件是否能找到
clangd.exe已经配置为了QTCreator的相同版本,

vscode中的Cmake工具包也已经设置为:
Image

虽然编辑器内提示无法找到各个头文件报错,但vscode在使用cmake构建Vnote时依然能够顺利编译通过

编辑器内的报错内容具体如下
Image

Image 推测:

疑似是因为compile_command.json的缘故,

根据
Image
可以知道qtcreator下的clangd使用的是%{BuildConfig:BuildDirectory:FilePath}.qtc_clangd\compile_command.json进行代码分析

而vscode的clangd使用的是{$workspace}/build/compile_command.json

同时vscode下通过cmakeTool运行的cmake也不会生成%{BuildConfig:BuildDirectory:FilePath}.qtc_clangd\compile_command.json

所以我现在的解决方案就是在setting.json中加入
"clangd.arguments": [
"--compile-commands-dir=E:\ReMyCloud\vnote\build\Desktop_Qt_6_9_3_MSVC2022_64bit-Release\.qtc_clangd",
],
而每次对CMakeLists.txt进行编辑后,都必须打开qtcreator,重新生成.qtc_clangd\compile_command.json

补充:vsocde的cmake在配置阶段的运行输出为
[proc] 正在执行命令: D:\visualStudio\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_TOOLCHAIN_FILE:FILEPATH=d:\Qt\6.9.3\msvc2022_64\lib\cmake\Qt6\qt.toolchain.cmake -DQT_QML_GENERATE_QMLLS_INI:STRING=ON "-DCMAKE_CXX_FLAGS_DEBUG_INIT:STRING=-DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG" "-DCMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT:STRING=-DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON --no-warn-unused-cli -S E:/ReMyCloud/vnote -B e:/ReMyCloud/vnote/build -G Ninja
[cmake] Not searching for unused variables given on the command line.
[cmake] -- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
[cmake] -- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
[cmake] -- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
[cmake] -- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
[cmake] -- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
[cmake] -- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
[cmake] -- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
[cmake] -- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
[cmake] -- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
[cmake] -- Package generation - Windows - Zip
[cmake] -- Package generation - Windows - WiX
[cmake] -- OpenSSLExtraLIBDIR:
[cmake] -- OpenSSLExtraLibFiles:
[cmake] -- Configuring done (2.6s)
[cmake] -- Generating done (0.8s)
[cmake] -- Build files have been written to: E:/ReMyCloud/vnote/build
而QTCreator在配置时的输出为
[cmake] Running D:\Qt\Tools\CMake_64\bin\cmake.exe -S E:/ReMyCloud/vnote -B E:/ReMyCloud/vnote/build/Desktop_Qt_6_9_3_MSVC2022_64bit-Release in E:\ReMyCloud\vnote\build\Desktop_Qt_6_9_3_MSVC2022_64bit-Release.
[cmake] -- Package generation - Windows - Zip
[cmake] -- Package generation - Windows - WiX
[cmake] -- OpenSSLExtraLIBDIR:
[cmake] -- OpenSSLExtraLibFiles:
[cmake] -- Configuring done (2.4s)
[cmake] -- Generating done (0.7s)
[cmake] -- Build files have been written to: E:/ReMyCloud/vnote/build/Desktop_Qt_6_9_3_MSVC2022_64bit-Release
[cmake]
[cmake] Elapsed time: 00:03.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions