Файлы исходного кода:
- /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 (вызовы get_bananas () )
Как я могу выяснить, почему я Не можете найти 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 docs
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 . < /p>
lsplog имеет эту информацию < /h1>
ASTWorker building file /local/david/cs/feature/base/components/future_sonic/sim3/src/dispatch_uop_base.cc version 0 with command \n[/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 clang-19.1.1/lib/clang/19 -- /my_repo/base/src/a.cc\n"
Loaded compilation database from /my_repo/base/build/compile_commands.json\n"
--> window/workDoneProgress/create(0)\n"
Enqueueing 930 commands for indexing\n"
$/progress\nI[11:45:43.742] --> $/progress\n"
Built preamble of size 21624316 for file /my_repo/base/components/future_sonic/sim3/src/dispatch_uop_base.cc version 0 in 1.46 seconds\n"
--> workspace/semanticTokens/refresh(1)\n"
Indexing c++20 standard library in the context of /my_repo/base/components/future_sonic/sim3/src/dispatch_uop_base.cc\n"
reply:textDocument/references(2) 0 ms\n"
--> $/progress\n"
--> $/progress\nI[11:45:51.571] --> $/progress\nI[11:45:51.571] --> $/progress\n"
Indexed /my_repo/base/components/future_sonic/sim3/src/dispatch.cc (136 symbols, 18679 refs, 475 files)\n"
--> $/progress\n"
Indexed /my_repo/base/components/future_sonic/sim3/src/fetch.cc (141 symbols, 18527 refs, 463 files)\n"
--> $/progress\n"
Подробнее здесь: https://stackoverflow.com/questions/794 ... references
Мобильная версия