【问题标题】:Eclipse Fortran project directory structureEclipse Fortran 项目目录结构
【发布时间】:2018-02-24 06:43:45
【问题描述】:

当我通过 Eclipse 创建 Fortran 项目时, 它包括binsrc 目录。

自动创建的Makefile有一条规则,将test.f90编译成src,它的runnable写在bin中。

我是 Fortran 的新手。 如果test.f90 应该只是编译可执行文件所需的一个对象,那么该对象文件应该放在哪里,比如test.o?当test.f90 内部有一个模块时,模块test.mod 应该在哪里输出? modsrcbin 处于同一级别。还是sharelib

那么,当我应该将所有中间文件分开在几个目录中时,有没有模板Makefile

【问题讨论】:

    标签: eclipse makefile fortran fortran90


    【解决方案1】:

    这取决于您创建的 Fortran 项目类型。如果您创建了 Makefile 项目,则您可以完全控制/负责文件所在的位置。它似乎创建了一个srcbin 目录,但除此之外,您似乎可以将*.mod*.o 等其他文件放在任何您想要的位置。我不确定 Fortran Makefile 项目的约定是什么。

    我更喜欢避免使用 Fortran Makefile 项目,因为我不希望使用 Makefile 手动整理依赖项和目标,但这是个人偏好;如果您熟悉 make 并需要它为您提供的精细控制,这是一个合理的选择。除非您已经知道 make,否则刚开始使用 Fortran Makefile 项目似乎真的很痛苦。

    在创建 Fortran 项目时选择 “文件 | 新建 | Fortran 项目 | 其他” 更简单,但不太明显,然后选择编译器和您要构建的内容。一个例子是 "Executable (Gnu Fortran on Linux/*nix)",用于在类 unix/linux 系统上使用 gfortran 构建可执行文件。构建目标包括可执行文件、静态库和共享库,每个都使用 gfortran、ifort 和一些其他编译器,适用于 Windows、OSX 或 linux/Unix。

    srcbin 目录不会自动创建,但 Makefile 由 Eclipse 管理。 Eclipse 将自动创建一个类似DebugDebug_Intel64 的目录,并在其中放置可执行文件*.o*.mod 文件。如果您创建自己的src 目录,目标文件将放在Debug/src 下,但可执行文件和模块文件将放在Debug 下。如果您创建 Release 构建配置,则此目录名称会更改(默认为 Debug)。

    默认情况下,Eclipse 将所有新源文件放在项目根目录中,但您可以创建 Fortran 源文件夹并根据需要组织项目。自动构建管理的缺点是 Eclipse 实际上只设置为构建一件事,因此如果您的项目包含多个可执行文件(例如单独的单元测试、实用程序等),您需要使用 make、CMake 等手动构建。

    Eclipse 需要一些时间来适应,但与 Mercurial 的集成非常好,而且 Photran 插件(并行工具项目的一部分)有助于源模板、代码分析和 Fortran 重构工具,以及用于配置编译器(至少对于 Linux 上的 ifort)。此外,它是跨平台的,并且可以与许多其他语言一起使用,因此它远非最糟糕的选择,尤其是在您使用 Photran 时。

    如果您没有在 Eclipse 上出售,我会考虑一些不那么重量级的选项。 Eclipse 有时会很痛苦,您可能会为您正在做的事情找到更好的 IDE。 OTOH,Eclipse 工作正常,Photran 插件有一些非常好的功能。

    【讨论】:

      【解决方案2】:

      对于 fortran 初学者来说,最好的 IDE 是 codeblocks

      使用 Mingw fortran 编译器下载二进制文件。

      根据您的要求,它会将您的所有 .mod.o 文件放入 obj 文件夹和 bin 文件夹中的 >executablessource 文件仅从它们所在的 目录 中使用。

      【讨论】:

      • 注意到 OP 专门询问了 Eclipse,但不清楚关于 Code::Blocks 的建议如何相关。它可能是一个不错的 IDE,但您回答的问题与所提出的问题不同。
      猜你喜欢
      • 2013-07-11
      • 2023-04-04
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 2011-10-13
      • 1970-01-01
      • 2013-06-30
      相关资源
      最近更新 更多