我在VS Code中定义了以下任务:
inner join
其中"label": "build",
"type": "shell",
"command": "opengl++ Interpolate.cpp"
是opengl++()
中定义的bash函数。我正在使用MacOS High Sierra,并且该功能在 Terminal.app 中有效。执行此任务将得到:
>执行任务:opengl ++ Interpolate.cpp << / p>
/ bin / bash:opengl ++:找不到命令
终端进程终止,退出代码:127
将任务更改为:
~/.bash_profile
解决了这个问题,这使得终端似乎没有正确地进行采购。我尝试删除VS Code上的所有用户设置均无济于事。
这不是可行的解决方案。要求显式采购"label": "build",
"type": "shell",
"command": "source ~/.bash_profile && opengl++ Interpolate.cpp"
似乎很危险。在将构建任务用于python(pyenv)以及使用~/.bash_profile
正确编译并忘记显式获取源代码的类似编译器时,这似乎可能会引起问题。
如何在不添加~/.bash_profile
的情况下使用~/.bash_profile
中定义的函数来处理VS Code shell任务?
答案 0 :(得分:1)
在.vscode
中的工作区中创建脚本更加容易。
该脚本可以包含有组织的复杂命令。
然后,使用类似于以下命令的命令在任务中获取脚本:
source .vscode/scripts/build.sh
脚本中可以包含诸如set -e
和source ~/.bash_profile
之类的行,我们的脚本tasks.json
更加简洁。
答案 1 :(得分:0)
我在Linux上遇到过类似的问题,this GitHub issue帮助了我。
尝试添加
"terminal.integrated.shellArgs.osx": [ "-l" ]
到您的settings.json。