Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用-lnag链接到NAG库_Linux_Fortran_Gfortran_Nag Fortran - Fatal编程技术网

Linux 使用-lnag链接到NAG库

Linux 使用-lnag链接到NAG库,linux,fortran,gfortran,nag-fortran,Linux,Fortran,Gfortran,Nag Fortran,我正在尝试编译我的第一个使用NAG库的程序,如下所示: program naginfo use nag_f77_a_chapter implicit none write(*,*) 'Calling NAG identification routine' write(*,*) call a00aaf end program naginfo 这是从教程中复制的,他们建议使用以下语句编译它: f95 -o naginfo naginfo.f90 -ln

我正在尝试编译我的第一个使用NAG库的程序,如下所示:

program naginfo

    use nag_f77_a_chapter
    implicit none

    write(*,*) 'Calling NAG identification routine'
    write(*,*)
    call a00aaf

end program naginfo
这是从教程中复制的,他们建议使用以下语句编译它:

f95 -o naginfo naginfo.f90 -lnag
他们假设这个
-lnag
将链接器驱动到NAG库,但是我发现这个错误:

Fatal Error: Can't open module file ‘nag_f77_a_chapter.mod’ for reading at (1): The directory does not exist
我已尝试更改NAG文件的目录,以帮助链接器找到它


如何将其编译和链接?

这只是对弗朗西斯卡勒斯评论的一个很长的解释

当链接所有已编译的片段时,标志
-lnag
仅将库代码添加到已编译的程序中。它在编译期间不起作用,因此对您看到的错误消息没有影响

编译器必须查看有关NAG库模块的信息。通常存储在扩展名为
.mod
的模块文件中。编译器通常只在当前目录或系统的include目录中搜索这些文件

您可以使用特殊的编译器标志指示编译器在不同的目录中搜索。它在不同的编译器之间可能有所不同,但通常是
-I
后跟库存储其
.mod
文件的目录


请注意,库中的
.mod
文件仅与库供应商用于创建它们的同一编译器兼容。

您有哪个版本的库?模块和库的名称在标记23前后更改了一段时间。标记22从该链接中删除了第一项,在这种情况下,名称可能是正确的,因此您的模块搜索路径可能不包括包含
*.mod
文件的目录。请看一下安装/用户说明,以及
-I
编译器标志。@PakFentL'indkio:我刚下载了NAG Mark 26,遇到了相同的问题,我在这里找到了指向我(我们)问题的指针,但没有更多的知识(如gfortran编译器开关等)仍然一无所知。在返回文档和示例之后,我发现通过将“USE nag_f77_a_chapter”替换为“USE nag_library,ONLY:a00aaf”,并使用以下命令行:gfortran-I${nagInc}nagInfo.f90${nagLib}-lstdc++-o nagInfo编译成功。nagInc是${HOME}/NAG/fll6i26dfl/NAG_interface_blocks/,而nagLib是${HOME}/NAG/fll6i26dfl/lib/libnag_NAG。aI曾尝试通过多种方式将编译器定向到文件夹,但都没有解决问题。可能与档案馆的许可或图书馆的安装有关吗?thx@PakFentL“如果你能读这些文件,indkio可能不会。确保该目录中确实有一个文件
nag_f77_a_chapter.mod
。您也可以尝试将它们复制到您的目录中。