GoGPT Best VPN GoSearch

OnWorks 网站图标

makedepf90 - 云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行 makedepf90

这是 makedepf90 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


makedepf90 - 为 Fortran 源文件创建 Makefile 依赖项列表。

概要


制作depf90 [-h[-V[-W|-W失踪[-W困惑[-m fmt[-u 模块名[-d 文件[-r
排除[-R 文件 排除[-固定| - 自由[-o 可执行文件名称[-可可[-D 您的姓名[-b ]
[-I 路径 1:路径 2:...[-nosrc] 源文件

商品描述


制作depf90 是一个自动创建依赖列表和编译规则的程序
对于 Makefile。

最初的想法是为 Fortran 提供与

gcc -MM *.c

为 C. 现在 makedepf90 实际上取代了这个功能,让我想知道
如果我也应该扩展 makedepf90 以支持 C 和 C++ ;-)。

制作depf90 同时支持 模块, 包括:s, CPP(1) 的#include:s, f90ppr(1) $包括:沙
COCO(1) ??包括 和设置文件。

制作depf90 读取命令行上给出的 Fortran 源文件,并写入依赖项
列出标准输出; 对于每个文件,它使用以下格式写入一行:

目标 : 先决条件

目标 是将作为文件编译结果的文件 -c 选项,
先决条件 是编译文件所需的文件。 此外, 制作depf90
可以选择创建链接最终所需的依赖行和 make-rule
可执行文件。

Fortran语言 依赖
编译文件所需的文件,即 先决条件 该文件是:

- 源文件本身

- 包含有关 USEd 模块的接口信息的文件,由编译器同时创建
编译模块(通常命名为 模块名.mod 或类似的东西,此后
被称为 mod文件).

- 包含文件(包括包含的文件和从这些模块使用的模块的 mod 文件)
包含文件)。

- 可可 设置文件,如果 COCO(1) 正在使用并且设置文件存在。

由于不同的编译器对 mod 文件使用不同的命名约定,列出它们
在依赖项列表中导致不可移植的 makefile。 因此这是常见的做法
列出目标文件(文件名.o) 对应于包含 USEd 的源文件
模块代替。 这是默认行为 制作depf90. 要改变这一点,请使用 -m
选项(例如 -m “%m.mod” 如果您的编译器命名 mod 文件 模块名.mod)

在工作目录中找不到的包含文件将不会在依赖项中列出
列表,假设它们是(很少更改)库的一部分而不是程序的一部分。
未找到定义的模块的 mod-files 也不会被相同的
原因。

配置


这些选项可以在命令行的任何位置以任何顺序给出。 之间的空间
option 及其参数是可选的。 选项不能分组(-硬件 不一样
作为 -h -W).

-h or - 帮帮我
将简短的帮助消息打印到标准输出并退出。

-V or - 版
将版本和版权信息打印到标准输出并退出

-W or -W失踪
打印有关缺少模块和包含文件的警告

-W困惑
混淆时打印警告(由于 makedepf90 本身的错误,或
因为你的源文件中有奇怪的东西)。 如果 makedepf90 遗漏了一些
依赖,或者做其他奇怪的事情,这个选项可能会给出一些关于什么的想法
继续。

-m fmt 告诉 制作depf90 mod文件将具有格式名称 fmt. fmt 可能含有
修饰符 %f HPMC胶囊 文件名 (没有文件名.后缀), %m HPMC胶囊 模块名 (在
小写), %M HPMC胶囊 模块名称 (大写)和 %% 为了 '%'。 默认值为“%fo”。

-u 模块名
忽略所有命名的模块 模块名.

-d 文件
使所有目标依赖于 文件.

-r 排除
添加 排除 (由制表符缩进)到除给定规则的行之外的所有依赖行
-R 选项。

排除 可能包含以下修饰符: %f 对于源文件的名称
(无后缀)依赖行是为,和 %% 为了 '%'。

-R '图案' '规则'
编译匹配shell模式的文件 模式 使用规则 排除。在 模式,
可以使用以下通配符: * = 任意数量的任意字符, ? = 任何
性格和 [ABC] = 任何一个 a, b or c. 请注意,模式匹配是
由...执行 制作depf90,不是外壳。 所以 模式 应该包含在
引号 (" or ')。 对于 排除 应用相同的规则 -r 以上。

请注意,“-r 排除“和”-R '*' 排除“。 在里面
前案 排除 将仅应用于未使用任何规则的行 -R,而
在后一种情况下, 排除 将应用于 所有 线。

-固定 / - 自由
将文件视为固定/免费源格式。 如果给出两个选项,则后者
用来。 默认:带后缀的文件 。F, 。F, 。为了, 。为了 or .ftn 被视为
固定格式和 .f90, .F90, .f95 or .F95 被视为自由格式。

-o 姓名
这个选项会导致 制作depf90 定义 Makefile 宏 离岸价=目标文件,
以及用于创建可执行文件的最终链接过程的依赖行 + 规则
姓名. 要设置链接规则,请使用选项 -l.

-l 排除
使用 VHDL 语言编写 排除 链接可执行文件时。 默认是
$(FC) -o $@ $(FFLAGS) $(LDFLAGS) $(离岸价) $(库).
此选项无效,除非 -o 用来。

-可可 寻找 COCO(1) 设置文件 (COCO ??include:s 自动支持)。 这个
选项暗示 - 自由.

-D 您的姓名
定义预处理器符号 您的姓名.

-b
依赖树和链接规则将假设对象放置在 。 这是
如果构建将目标文件放在与源不同的目录中,则很有用
文件。

-I 路径列表
路径列表, 如果在当前工作中没有找到
目录。 这里, 路径列表 是冒号分隔的路径名列表。

-nosrc 不要在先决条件中列出源文件。

示例


基础版 用法
这是一个基本的例子 制作depf90 一起使用 使(1). 创建一个名为
生成文件 具有以下内容:

----------------------

# FC = 要使用的编译器
FC=f90

# 编译器选项
标志=-O

# 在这里列出程序使用的库
图书馆=

# 后缀规则:首先丢弃所有旧的后缀-
# 规则,然后创建新的用于编译
# *.f90-文件。
.后缀:
.后缀:.f90 .o

.f90.o:
$(FC) -c $(FFLAGS) $

# 在下面包含 makedepf90 创建的依赖列表
包括 .depend

# 目标 'clean' 用于删除对象 - *.mod- 和其他
# 不需要的文件
清洁:
rm -f *.o *.mod 核心

# 使用 makedepf90 创建依赖列表。 所有文件
# 需要编译以构建程序,
# 即除了包含文件之外的所有源文件,都应该
# 在命令行中给出 makedepf90。
#
# '-o' 选项的参数将是
# 运行'make'时的结果程序,在这种情况下
# 'foobar'
依赖 .depend:
makedepf90 -o foobar *.f90 > .depend

-----------------------

(注意所有缩进的行都应该用制表符缩进,而不是空格)

有了这个makefile,命令 使 应该执行编译和所需的所有命令
链接程序 foob​​ar 在工作目录中的所有 *.f90 文件中。

依赖列表 。依靠 将(重新)创建,如果 。依靠 不存在,或者如果
命令 使 依赖 正在运行。 每次更改时都应执行此操作
影响文件依赖关系的程序(例如,如果添加了新的源文件
到项目)。

例如: 通过 可可
如果您使用预处理器,事情可能会变得更加复杂。 如果幸运的话,
您的编译器支持您的预处理器并自动在您的代码上运行它,但如果
它没有,您必须给出命令来自己运行预处理器。 下面是一个
Makefile 的示例 COCO(1)-用户。

-----------------------
FC=f90
标志=-O
预处理器=可可

.后缀:
.后缀:.f .f90 .o

# 以.f90结尾的文件直接编译...
.f90.o:
$(FC) -c $(FFLAGS) $

# ... 而那些以 .f 结尾的先被预处理。
.fo:
$(预处理器)$*; $(FC) -c $(FFLAGS) $*.f90

包括 .depend

清洁:
rm -f *.o *.mod 核心

依赖 .depend:
makedepf90 -coco -o foobar *.f90 *.f > .depend

-----------------------

注意: 的一些实现 使(1) 不会执行任何命令——甚至不会 使 依赖
— 使用上面的 Makefile,除非存在一个名为 。依靠. 为了克服这个
问题,要么运行 制作depf90 手动,或首先创建一个空的 。依靠 文件
命令 触摸 。依靠.

诊断


大多数错误和警告消息都是不言自明的,但其中一些可能需要一些
进一步解释:

警告: 递归 限制 达到 in 文件 文件名
递归解析include文件时,makedepf90已经达到递归限制。
可能的原因是:要么你有一些 复杂的系统包括
文件,或者您有递归包含(例如包含自身的包含文件)。
在后一种情况下; 修复它,您的 Fortran 编译器也不会喜欢它。

使用 onworks.net 服务在线使用 makedepf90


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。