首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在VSCODE中使用Intel Fortran编译器和makefile -‘`make: ifort:命令not’

在VSCODE中使用Intel Fortran编译器和makefile -‘`make: ifort:命令not’
EN

Stack Overflow用户
提问于 2022-06-10 20:56:19
回答 1查看 544关注 0票数 3

我对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。我得到的输出如下:

代码语言:javascript
运行
复制
> 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文件和任务配置(如果有帮助的话)。如果需要更多的信息,请告诉我。

代码语言:javascript
运行
复制
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文件

代码语言:javascript
运行
复制
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "make",
            "type": "shell",
            "command": "make -j4",
            "options": {
                "cwd": "${workspaceRoot}"
            }
        }
    ]
}
EN

回答 1

Stack Overflow用户

发布于 2022-06-15 14:10:21

我也遇到了同样的问题,并通过在setvars.h中搜索tasks.json解决了这个问题:

代码语言:javascript
运行
复制
{
    "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才是必需的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72579755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档