Link 使用 -lnag 到 NAG 库

Link to NAG library with -lnag

我正在尝试编译我的第一个使用 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 将 linker 驱动到 NAG 库,但后来我发现这个错误:

Fatal Error: Can't open module file ‘nag_f77_a_chapter.mod’ for reading at (1): The directory does not exist

我尝试更改 NAG 文件的目录以帮助 link 用户找到它。

如何编译和 link?

这只是对 francescalus 评论的长篇解释。

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

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

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

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