Clangd не может найти файлы заголовков ue5C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Clangd не может найти файлы заголовков ue5

Сообщение Anonymous »

Я использовал UE5 для создания класса C++ и открыл его с помощью VSC. Clangd сообщил, что не может найти «coreminimal.h», но проект может быть сгенерирован обычным образом.
ue, похоже, автоматически генерирует файл c_cpp_properties.json и два файла compile_commands, а именно:
c_cpp_properties.json:
{
"configurations": [
{
"name": "obstacleassaultEditor Editor Win64 Development (obstacleassault)",
"compilerPath": "D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"cStandard": "c17",
"cppStandard": "c++20",
"intelliSenseMode": "msvc-x64",
"compileCommands": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_obstacleassault.json"
},
{
"name": "Win32",
"compilerPath": "D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"cStandard": "c17",
"cppStandard": "c++20",
"intelliSenseMode": "msvc-x64",
"compileCommands": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_Default.json"
}
],
"version": 4


compileCommands_Default.json:
[
{
"file": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\Source\\obstacleassault\\MovingPlatform.cpp",
"arguments": [
"D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"@E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_Default\\obstacleassault.1.rsp"
],
"directory": "E:\\epic\\UE_5.4\\Engine\\Source"
},
{
"file": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\Source\\obstacleassault\\MovingPlatform.h",
"arguments": [
"D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"@E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_Default\\obstacleassault.1.rsp"
],
"directory": "E:\\epic\\UE_5.4\\Engine\\Source"
},
{
"file": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\Source\\obstacleassault\\obstacleassault.Build.cs",
"arguments": [
"D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"@E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_Default\\obstacleassault.1.rsp"
],
"directory": "E:\\epic\\UE_5.4\\Engine\\Source"
},
{
"file": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\Source\\obstacleassault\\obstacleassault.cpp",
"arguments": [
"D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"@E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_Default\\obstacleassault.1.rsp"
],
"directory": "E:\\epic\\UE_5.4\\Engine\\Source"
},
{
"file": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\Source\\obstacleassault\\obstacleassault.h",
"arguments": [
"D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"@E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_Default\\obstacleassault.1.rsp"
],
"directory": "E:\\epic\\UE_5.4\\Engine\\Source"
}

]
compileCommands_obstacleassault.json:
[
{
"file": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\Source\\obstacleassault\\MovingPlatform.cpp",
"arguments": [
"D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"@E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_obstacleassault\\obstacleassault.1.rsp"
],
"directory": "E:\\epic\\UE_5.4\\Engine\\Source"
},
{
"file": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\Source\\obstacleassault\\MovingPlatform.h",
"arguments": [
"D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"@E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_obstacleassault\\obstacleassault.1.rsp"
],
"directory": "E:\\epic\\UE_5.4\\Engine\\Source"
},
{
"file": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\Source\\obstacleassault\\obstacleassault.Build.cs",
"arguments": [
"D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"@E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_obstacleassault\\obstacleassault.1.rsp"
],
"directory": "E:\\epic\\UE_5.4\\Engine\\Source"
},
{
"file": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\Source\\obstacleassault\\obstacleassault.cpp",
"arguments": [
"D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"@E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_obstacleassault\\obstacleassault.1.rsp"
],
"directory": "E:\\epic\\UE_5.4\\Engine\\Source"
},
{
"file": "E:\\unreal\\project\\obstacleassault\\obstacleaasault\\Source\\obstacleassault\\obstacleassault.h",
"arguments": [
"D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe",
"@E:\\unreal\\project\\obstacleassault\\obstacleaasault\\.vscode\\compileCommands_obstacleassault\\obstacleassault.1.rsp"
],
"directory": "E:\\epic\\UE_5.4\\Engine\\Source"
}

]
файл rsp, указанный в файле json, содержит путь к родительской папке этого заголовочного файла
и результат clangd был:
I[17:08:47.937] clangd version 18.1.3 (https://github.com/llvm/llvm-project c13b7485b87909fcf739f62cfa382b55407433c0)
I[17:08:47.938] Features: windows+grpc
I[17:08:47.938] PID: 43328
I[17:08:47.938] Working directory: e:\unreal\project\obstacleassault\obstacleaasault
I[17:08:47.938] argv[0]: D:\program\clangd-windows-18.1.3_7\clangd_18.1.3\bin\clangd.exe
I[17:08:47.942] Starting LSP over stdin/stdout
I[17:08:47.942] reply:initialize(0) 9 ms
I[17:08:47.999] workspace/semanticTokens/refresh(0)
I[17:08:48.025] --> textDocument/clangd.fileStatus
I[17:08:48.026] textDocument/publishDiagnostics
I[17:08:48.043] --> textDocument/inactiveRegions
I[17:08:48.043] --> textDocument/clangd.fileStatus
I[17:08:48.078] reply:textDocument/documentLink(1) 0 ms
I[17:08:48.079] --> textDocument/clangd.fileStatus
I[17:08:48.088] reply:textDocument/inlayHint(2) 0 ms
I[17:08:48.088] --> textDocument/clangd.fileStatus
I[17:08:48.089] reply:textDocument/semanticTokens/full(3) 0 ms
I[17:08:48.090] --> textDocument/clangd.fileStatus
I[17:08:48.453] textDocument/clangd.fileStatus
I[17:08:52.102] reply:textDocument/definition(18) 0 ms
I[17:08:52.102] --> textDocument/clangd.fileStatus
I[17:08:52.127] reply:textDocument/definition(19) 0 ms
I[17:08:52.127] --> textDocument/clangd.fileStatus

Я создал compile_commands.json в папке Source и скопировал содержимое compileCommands_obstacle.json в это:
Изображение

Это решило проблему некоторые файлы заголовков не были найдены, но вызвали другие проблемы:
Изображение
outlog clangd:
I[20:00:22.539] clangd version 18.1.3 (https://github.com/llvm/llvm-project c13b7485b87909fcf739f62cfa382b55407433c0)
I[20:00:22.540] Features: windows+grpc
I[20:00:22.540] PID: 29612
I[20:00:22.540] Working directory: e:\unreal\project\obstacle
I[20:00:22.540] argv[0]: D:\program\clangd-windows-18.1.3_7\clangd_18.1.3\bin\clangd.exe
I[20:00:22.546] Starting LSP over stdin/stdout
I[20:00:22.546] reply:initialize(0) 9 ms
I[20:00:22.557] $/progress
I[20:00:22.562] ASTWorker building file e:\unreal\project\obstacle\Source\obstacle\MovingPlatform.h version 1 with command
[E:\epic\UE_5.4\Engine\Source]
"D:\\program\\vs\\2022community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\Hostx64\\x64\\cl.exe" --driver-mode=cl
/FI "E:\\unreal\\project\\obstacle\\Intermediate\\Build\\Win64\\x64\\UnrealEditor\\Development\\obstacle\\Definitions.obstacle.h"
/FI "E:\\unreal\\project\\obstacle\\Intermediate\\Build\\Win64\\x64\\obstacleEditor\\Development\\UnrealEd\\SharedPCH.UnrealEd.Project.ValApi.Cpp20.InclOrderOldest.h"
/I "E:\\epic\\UE_5.4\\Engine\\Source"
/I "E:\\epic\\UE_5.4\\Engine\\Intermediate\\Build\\Win64\\UnrealEditor\\Inc\\Engine\\UHT"
...........
/I "E:\\epic\\UE_5.4\\Engine\\Source\\ThirdParty\\LibTiff\\Source\\Win64"
/I "E:\\epic\\UE_5.4\\Engine\\Source\\ThirdParty\\LibTiff\\Source" "-resource-dir=D:\\program\\clangd-windows-18.1.3_7\\clangd_18.1.3\\lib\\clang\\18" -- "e:\\unreal\\project\\obstacle\\Source\\obstacle\\MovingPlatform.h"
I[20:00:22.571] --> textDocument/clangd.fileStatus
I[20:00:22.666]

Подробнее здесь: https://stackoverflow.com/questions/790 ... ader-files
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»