1

我使用 VS Code 作为我的 C++ 开发的主要代码编辑器。我正在使用 Microsoft 的远程 SSH 扩展从家里访问我的办公室工作站。对于 C++ 自动完成和 linting,我使用 LLVM 的 clangd 扩展。公司政策阻止用户对工作站进行 sudo 访问,并且库通常不是最新版本。

当我尝试启动 clangd 时,我收到以下错误消息:

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

这显然意味着 libstdc++ 的版本对于我正在使用的 clangd 版本来说太旧了。通过将最新 gcc 库(我们的编译器工具链的一部分)的位置添加到 LD_LIBRARY_PATH,然后启动 VS Code,这很容易解决。

但是,现在我正在远程工作,我不能这样做,因为 VS Code 安装在我的笔记本电脑上,并且我正在使用 SSH 扩展来访问我办公室工作站上的代码。查看 clangd 的手册页,我看不到指定要使用的 libstdc++ 路径的方法。除了在启动/登录时将库添加到 LD_LIBRARY_PATH 之外,还有其他方法可以绕过此问题吗?

4

1 回答 1

0

我找到了一种方法,虽然有点hacky。

导出LD_LIBRARY_PATH.zprofile 上的新文件(或等效于你的 shell。我正在使用 zsh)。确保主机中没有运行 VSCode 服务器。如果有,请确保将其删除。

在 settings.json 文件中添加以下行,告诉 VSCode 您希望 shell 成为登录的交互式 shell:

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

任务完成。Clangd 现在可以找到正确的库。

于 2020-03-18T12:25:12.023 回答