我对Fortran不熟悉,所以请容忍我。我有一个与Intel ifort
编译器一起运行的Fortran文件。我可以从命令行运行命令ifort -fpp -D IFORT discrete-kb-edits.F -lpgplot
,它将把文件编译成a.out
并工作。
现在,我尝试用Fortran支持在Ubuntu20.04LTS上设置VSCode 1.68。因此,我配置了C/C++插件和Fortran断点插件。我还创建了一个Makefile,如下所示,并设置了一个tasks.json
文件,以从VSCode运行make文件。
问题是,当VSCode运行make
时,它不会找到ifort
。我得到的输出如下:
> Executing task: make -j4 <
ifort -fpp -D IFORT discrete-kb-edits.F -lpgplot
make: ifort: Command not found
make: *** [Makefile:7: main.o] Error 127
The terminal process "/usr/bin/zsh '-c', 'make -j4'" failed to launch (exit code: 2).
不知何故,我能够从终端编译并从常规终端找到ifort
,但是在从VSCode任务编译时,我会发现一个关于ifort
未找到的错误。
对Intel编译器的引用在.zshrc
文件中。我在zsh配置中运行source ~/intel/oneapi/setvars.sh
。因此,在运行Vscode任务时,它似乎不会在运行make
之前加载终端配置。
是否有方法将VSCode配置为与ifort
一起工作?
这是make文件和任务配置(如果有帮助的话)。如果需要更多的信息,请告诉我。
Makefile:
# variables
FC=ifort
FFLAGS= -fpp -D IFORT
# compiling
main.o: discrete-kb-edits.F
$(FC) $(FFLAGS) discrete-kb-edits.F -lpgplot
# cleanup
clean:
rm *.o a.out
# run
run:
make
./a.out
VSCode tasks.json文件
{
"version": "2.0.0",
"tasks": [
{
"label": "make",
"type": "shell",
"command": "make -j4",
"options": {
"cwd": "${workspaceRoot}"
}
}
]
}
发布于 2022-06-15 14:10:21
我也遇到了同样的问题,并通过在setvars.h
中搜索tasks.json解决了这个问题:
{
"version": "2.0.0",
"tasks": [
{
"label": "make",
"type": "shell",
"command": "bash -c 'source /opt/intel/oneapi/setvars.sh --force && make'",
"args": [],
"options": {
"cwd": "${workspaceRoot}"
}
}
]
}
只有在文件以前已经来源的情况下,--force
才是必需的。
https://stackoverflow.com/questions/72579755
复制相似问题