使用-lnag链接到NAG库

时间:2016-11-28 19:25:26

标签: 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 -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文件的目录以帮助链接器找到它。

如何编译和链接?

1 个答案:

答案 0 :(得分:3)

这只是对francescalus评论的一个长期解释。

标记-lnag仅在将所有已编译的块链接在一起时才将库代码添加到已编译的程序中。它在编译期间没有任何影响,因此对您看到的错误消息没有影响。

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

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

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