-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
问题描述:
在QTcreator中没有任何问题
但是在vscode中编辑代码时,clangd插件提示找不到QT的头文件,没有测试std标准库的头文件是否能找到
clangd.exe已经配置为了QTCreator的相同版本,
虽然编辑器内提示无法找到各个头文件报错,但vscode在使用cmake构建Vnote时依然能够顺利编译通过
推测:
疑似是因为compile_command.json的缘故,
根据

可以知道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.
