В настоящее время я пытаюсь настроить файл .clangd для использования в моем lsp...
как я могу добавить несколько флагов компиляции? мой файл создается автоматически и выглядит так:
CompileFlags:
Add:
- -IC:\Users\adria\Desktop\Nimble_New\include
- -IC:\Users\adria\Desktop\Nimble_New\include\lua
- -IC:\Users\adria\Desktop\Nimble_New\include\raylib
- -IC:\Users\adria\Desktop\Nimble_New\include\rlimgui
- -IC:\Users\adria\Desktop\Nimble_New\include\rlimgui\extras
- -IC:\Users\adria\Desktop\Nimble_New\src
- -IC:\Users\adria\Desktop\Nimble_New\src\asseteditor
- -IC:\Users\adria\Desktop\Nimble_New\src\textureeditor
- -IC:\Users\adria\Desktop\Nimble_New\src\ui
- -IC:\Users\adria\Desktop\Nimble_New\src\utils
Я также попробовал это так:
CompileFlags:
Add: [-IC:\Users\adria\Desktop\Nimble_New\include,-IC:\Users\adria\Desktop\Nimble_New\include\lua,-IC:\Users\adria\Desktop\Nimble_New\include\raylib,-IC:\Users\adria\Desktop\Nimble_New\include\rlimgui,-IC:\Users\adria\Desktop\Nimble_New\include\rlimgui\extras,-IC:\Users\adria\Desktop\Nimble_New\src,-IC:\Users\adria\Desktop\Nimble_New\src\asseteditor,-IC:\Users\adria\Desktop\Nimble_New\src\textureeditor,-IC:\Users\adria\Desktop\Nimble_New\src\ui,-IC:\Users\adria\Desktop\Nimble_New\src\utils]
Если я сделаю:
CompileFlags:
Add: -IC:\Users\adria\Desktop\Nimble_New\include\raylib
Или:
CompileFlags:
Add:
- -IC:\Users\adria\Desktop\Nimble_New\include\raylib
он отлично работает для одного пути включения, но как только я добавляю другой, он больше не загружается.
Есть ли другое решение этой проблемы?
Важно, чтобы Add:
имел отступ относительно CompileFlags:
.
Любой из ваших первых двух примеров должен работать с этим изменением, например:
CompileFlags:
Add:
- -IC:\Users\adria\Desktop\Nimble_New\include
- -IC:\Users\adria\Desktop\Nimble_New\include\lua
- -IC:\Users\adria\Desktop\Nimble_New\include\raylib
- -IC:\Users\adria\Desktop\Nimble_New\include\rlimgui
- -IC:\Users\adria\Desktop\Nimble_New\include\rlimgui\extras
- -IC:\Users\adria\Desktop\Nimble_New\src
- -IC:\Users\adria\Desktop\Nimble_New\src\asseteditor
- -IC:\Users\adria\Desktop\Nimble_New\src\textureeditor
- -IC:\Users\adria\Desktop\Nimble_New\src\ui
- -IC:\Users\adria\Desktop\Nimble_New\src\utils
(Если это по-прежнему не работает, опубликуйте журналы clangd для дальнейшей диагностики.)
@BigAgg Хорошо. Я вижу, что вы нашли обходной путь, но если вы все еще хотите выяснить, почему первоначальный подход не работает, поделитесь журналами, как уже упоминалось.
Я сделаю это после этих выходных. Пока есть чем заняться, но я обязательно к этому вернусь, спасибо за указание на ведение журнала.
Я исправил это, создав файл compile_flags.txt в исходном каталоге, который имеет следующее содержимое:
-IC:\Users\adria\Desktop\Nimble_New\include
-IC:\Users\adria\Desktop\Nimble_New\include\lua
-IC:\Users\adria\Desktop\Nimble_New\include\raylib
-IC:\Users\adria\Desktop\Nimble_New\include\rlimgui
-IC:\Users\adria\Desktop\Nimble_New\include\rlimgui\extras
-IC:\Users\adria\Desktop\Nimble_New\src
-IC:\Users\adria\Desktop\Nimble_New\src\asseteditor
-IC:\Users\adria\Desktop\Nimble_New\src\textureeditor
-IC:\Users\adria\Desktop\Nimble_New\src\ui
-IC:\Users\adria\Desktop\Nimble_New\src\utils
просто, я могу без проблем использовать свой lsp с clangd
для тех, у кого такая же проблема, я автоматизировал создание файла с помощью простого файла Python:
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
include_paths = []
for path, subdirs, files in os.walk(f"{dir_path}\\include"):
if path not in include_paths:
include_paths.append(path)
for path, subdirs, files in os.walk(f"{dir_path}\\src"):
if path not in include_paths:
include_paths.append(path)
with open("compile_flags.txt", mode = "w", encoding = "utf-8") as file:
for path in include_paths:
file.write(f'-I{path}\n')
просто запустите его в исходном каталоге, вы можете отредактировать пути к папкам «include» и «source» в соответствии с вашими потребностями.
Я сделал отступ в своем файле. Просто не было отступа, когда я его копировал