Файлы исходного кода:
- (объявляет get_bananas () )
Код: Выделить всё
/my_repo/base/src/a.hh - (определяет get_bananas () )
Код: Выделить всё
/my_repo/base/src/a.cc
- (вызовы get_bananas () )
Код: Выделить всё
/my_repo/base/build/generated/gen_a_usage.cc
Как я могу выяснить, почему я Не можете найти gen_a_usage.cc? После того, как я открыл этот файл из папки сборки в моем редакторе, ссылки () Начните перечислять ссылки и в этом файле.
В действительности проект намного больше, чем Просто эти три файла. Оба a.cc имеют записи и gen_a_usage.cc есть записи в compile_commands.json файл. Или не удается?
Код: Выделить всё
{
"directory": "/my_repo/base/build",
"command": "clang-wrapper-19.1.1/bin/clang++ -I/my_repo/base/build/generated -I/my_repo/base/src -I... -isystem ... -Og -g -std=gnu++20 -fPIC -Wall -Wextra -Wformat-signedness -ggdb -fcolor-diagnostics -o CMakeFiles/objects.dir/src/a.cc.o -c /my_repo/base/src/a.cc",
"file": "/my_repo/base/src/a.cc",
"output": "CMakeFiles/objects.dir/src/a.cc.o"
},
{
"directory": "/my_repo/base/build",
"command": "clang-wrapper-19.1.1/bin/clang++ -I/my_repo/base/build/generated -I/my_repo/base/src -I... -isystem ... -Og -g -std=gnu++20 -fPIC -Wall -Wextra -Wformat-signedness -ggdb -fcolor-diagnostics -o CMakeFiles/objects.dir/src/gen_a_usage.cc.o -c /my_repo/base/build/generated/gen_a_usage.cc",
"file": "/my_repo/base/build/generated/gen_a_usage.cc",
"output": "CMakeFiles/objects.dir/src/gen_a_usage.cc.o"
},
clangd имеет эту информацию (см. return-all-references-for-a-symbol) < /p>
Одна из потенциальных причин заключается в том, что Clangd не индексировал все файлы в вашем проекте. Пожалуйста, убедитесь, что все файлы видны для Clangd через настройку проекта и Compile_commands.json. Просто то, что путь файла CC указан явно где -то в файле JSON? Сделано с Cmake + Ninja < /li>
После сборки я запускаю мой редактор (neovim) < /li>
lsp (clangd) запускается с этой конфигурацией:
lsp.clangd.setup { cmd = {"clangd", "--clang-tidy", "--background-index", "--limit-references=0", "--cross-file-rename"}}
< /code>
< /li>
< /ul>
Я видел это поведение в Clangd версии 16, 19 и 20. и у моего коллега есть аналогичные проблемы в Vscode .
Подробнее здесь: https://stackoverflow.com/questions/794 ... references
Мобильная версия