2

我正在尝试编译我的第一个使用 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 文件的目录以帮助链接器找到它。

我如何让它编译和链接?

4

1 回答 1

3

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

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

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

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

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

于 2016-11-28T20:18:53.720 回答