更改NetBeans 8中的fortran编译顺序

更改NetBeans 8中的fortran编译顺序,netbeans,fortran,netbeans-8,automatic-differentiation,Netbeans,Fortran,Netbeans 8,Automatic Differentiation,我正在CentOS 7上的NetBeans 8中工作,以更改一些旧的fortran代码,用自动微分替换数字微分。OpenAD将带注释的fortran函数作为输入,并生成一个自动区分的函数作为输出。该输出函数依赖于OpenAD提供的一些模块 在将原始文件添加到NetBeans项目、生成OpenAD输出函数并将该输出及其依赖项添加到项目之后,项目将不会生成 致命错误:无法打开模块文件“oad\u active.mod”以在(1)读取:没有此类文件或目录 OAD\u active.f90是OpenA

我正在CentOS 7上的NetBeans 8中工作,以更改一些旧的fortran代码,用自动微分替换数字微分。OpenAD将带注释的fortran函数作为输入,并生成一个自动区分的函数作为输出。该输出函数依赖于OpenAD提供的一些模块

在将原始文件添加到NetBeans项目、生成OpenAD输出函数并将该输出及其依赖项添加到项目之后,项目将不会生成

致命错误:无法打开模块文件“oad\u active.mod”以在(1)读取:没有此类文件或目录
OAD\u active.f90
是OpenAD插入和提供的依赖项之一。如果我先编译该文件,然后构建项目(无需清理),构建就会成功


如何告诉NetBeans在构建过程中更快地编译OAD\u active.f90?

NetBeans没有编译顺序,它会创建表示依赖关系图的
Makefile
s。默认图形只是最终的可执行文件,具体取决于每个源

每个源的其他依赖项可以通过项目选项卡中每个源的上下文菜单添加;选择“属性”,然后在类别中选择“Fortran编译器”,输入部分包含附加依赖项字段。该字段是以空格分隔的列表。您可能希望将配置选择器(位于“文件属性”对话框顶部)更改为“”。如果缺少“项目”选项卡,则可以从菜单栏项目窗口打开该选项卡▶︎项目

为了让编译器找到
.mod
文件,附加依赖项字段必须包含相应的
.o
文件,而不是源文件。其他依赖项中的条目似乎是相对于项目根的路径;
.o
文件的路径取决于激活的配置(默认情况下,“调试”或“发布”之一)。“附加依赖项”字段中允许使用Makefile变量,因此您可以使用
${OBJECTDIR}
作为配置依赖前缀,路径的其余部分与源文件的路径匹配

在我的项目中,我的源代码位于
$project/src
,OpenAD文件位于
$project/src/OpenAD
。在三种情况下,我必须添加其他依赖项:

  • 调用OpenAD转换的函数的源代码:
    ${OBJECTDIR}/src/OpenAD/OAD\u active.o
  • OpenAD转换生成的源代码:
    ${OBJECTDIR}/src/OpenAD/OAD\u active.o${OBJECTDIR}/src/OpenAD/w2f\uu types.o
  • $project/src/OpenAD/OAD_active.f90:
    ${OBJECTDIR}/src/OpenAD/w2f_utypes.o

Netbeans使用哪种构建系统?Makefile还是定制的?您当前的配置是什么样子的?我不知道它使用什么构建系统,但它确实创建了一个名为
Makefile
的文件。我不确定你想知道关于我的配置的什么,它主要是NetBeans默认值。不幸的是,我不知道NetBeans。如果您只使用了
Makefile
,我会告诉您在其中的某个地方添加一行
.o:OAD\u active.o
。但是如果Netbeans每次都重新创建
Makefile
,这就太麻烦了。检查文档中的“依赖项”NetBeans每次都会重新创建
Makefile
(实际上是一组包含内容的文件),但是跟踪它会让我找到正确的路径来找到答案。谢谢这个问题和这个答案都太棒了。。。我刚刚开始重新探索Fortran。。。我对Fortran模块非常感兴趣。我已经用谷歌搜索了好几次了。。。我找不到其他地方(甚至是Netbeans网站)可以解释这一点。感谢@ShadSterling创建了一个资源,我在过去几周内多次发现了这个资源。