Можно ли указать путь к libstdc ++ в расширении VS Code clangd? - PullRequest
0 голосов
/ 13 марта 2020

Я использую VS Code в качестве основного редактора кода для моей разработки на C ++. Я использую удаленное расширение S SH от Microsoft для доступа к своей офисной рабочей станции из дома. Для автодополнения и слияния в C ++ я использую расширение clangd от LLVM. Политика компании запрещает пользователям иметь доступ sudo к рабочим станциям, а библиотеки часто не имеют последней версии.

Когда я пытаюсь запустить clangd, я получаю следующее сообщение об ошибке:

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /my/path/to/clangd)

Что очевидно означает, что версия libstdc ++ слишком старая для той версии clangd, которую я использую. Это легко исправить, добавив в LD_LIBRARY_PATH расположение самых последних библиотек g cc (часть нашей цепочки инструментов компилятора), а затем запустив VS Code.

Однако теперь, когда я работаю удаленно, я не могу этого сделать, потому что Код VS установлен на моем ноутбуке, и я использую расширение S SH для доступа к коду на моей офисной рабочей станции. Глядя на справочную страницу для clangd, я не могу найти способ указать путь к libstdc ++, который я хочу использовать. Есть ли способ, кроме добавления библиотек в LD_LIBRARY_PATH при запуске / входе в систему, обойти эту проблему?

1 Ответ

0 голосов
/ 18 марта 2020

Я нашел способ, хотя и немного хакерский.

Экспорт нового LD_LIBRARY_PATH в .zprofile (или эквивалент для вашей оболочки. Я использую zsh). Убедитесь, что на хосте не запущены серверы VSCode. Если есть, обязательно удалите их.

В настройках. json файл добавьте следующую строку, чтобы сообщить VSCode, что вы хотите, чтобы оболочка была логином, интерактивная оболочка:

"terminal.integrated.shellArgs.linux": ["-l", "-i"]

Работа выполнена. Clangd теперь находит правильные библиотеки.

...