我正在尝试编译我的第一个使用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文件的目录以帮助链接器找到它。
如何编译和链接?
答案 0 :(得分:3)
这只是对francescalus评论的一个长期解释。
标记-lnag
仅在将所有已编译的块链接在一起时才将库代码添加到已编译的程序中。它在编译期间没有任何影响,因此对您看到的错误消息没有影响。
编译器必须查看有关NAG库模块的信息。这通常存储在具有.mod
扩展名的模块文件中。编译器通常只在当前目录或系统的include目录中搜索这些。
您可以指示编译器使用特殊的编译器标志在不同的目录中进行搜索。它可能在不同的编译器之间有所不同,但通常是-I
,后面是库存储其.mod
文件的目录。
请注意,库中的.mod
文件仅与库供应商用于创建它们的编译器兼容。