是否可以在VS Code clangd扩展中指定libstdc ++的路径?

时间:2020-03-13 13:30:14

标签: visual-studio-code libstdc++ vscode-remote clangd

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

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

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

这显然意味着libstdc ++的版本对于我正在使用的clangd版本而言太旧了。通过向LD_LIBRARY_PATH添加最新gcc库(我们的编译器工具链的一部分)的位置,然后启动VS Code,可以轻松解决此问题。

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

1 个答案:

答案 0 :(得分:0)

我发现了一种方法,尽管有点笨拙。

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

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

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

工作完成。现在,Clangd找到了正确的库。