我正在尝试编译使用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文件的目录以帮助链接器找到它。
我如何将其编译和链接?
这只是Francescalus评论的长期解释。
FLAG -lnag
仅在将所有编译的零件链接在一起时,将库代码添加到已经编译的程序中。它在编译过程中没有效果,因此对您看到的错误消息没有影响。
编译器必须查看有关NAG库模块的信息。通常将其存储在带有.mod
扩展程序的模块文件中。编译器通常仅在当前目录或系统中的目录中搜索这些编译器。
您可以使用特殊的编译器标志指示编译器在其他目录中搜索。它可能在不同的编译器之间有所不同,但通常是-I
,然后是该库存储其.mod
文件的目录。
被告知,库中的.mod
文件仅与图书馆供应商创建它们的相同编译器兼容。