我是一名Fortran新手,正在尝试理解编译所需的全部内容。到目前为止一切都很好,但有一件事我不明白。假设我修改了代码,但我的修改并不会改变.mod文件的内容,那么我能否在不重新创建.mod文件的情况下编译并创建目标文件?如果可以,应该如何操作呢?我尝试在互联网上搜索,但并没有真正找到答案。顺便说一下,我正在使用gfortran。非常感谢您的帮助,如果答案已经存在(我找不到),请多多包涵。
如果您使用的是gfortran编译器,则编译器已经为您完成了此操作。在编译模块时,它会使用临时名称创建.mod
文件,然后在现有的.mod
文件(如果存在)和新文件之间比较校验和,仅当校验和不同时才用新的替换旧的。
-fsyntax-only
来加快编译速度的一个用例是先使用它进行一次遍历,生成所有所需的.mod
文件,然后再进行第二次遍历进行“真正”的构建,这样可以更多地并行处理。是否值得这样做取决于项目本身。 - janneb.mod
文件而不是 .o
文件的依赖关系,则此答案中提到的 gfortran 功能可帮助避免重新编译级联。另一个常见的技巧是设置“调试构建”选项,以启用各种错误检查选项,并降低优化级别,从而实现更快的构建速度(代价是运行时性能)。 - janneb