我有一个包含大约 100 个文件的 Fortran 项目。所有这些都已编译,但并非所有运行都需要它们。还有一些文件包含混合使用/未使用的子程序。
有没有办法知道运行所需的最小文件/子例程/函数集?
我有一个包含大约 100 个文件的 Fortran 项目。所有这些都已编译,但并非所有运行都需要它们。还有一些文件包含混合使用/未使用的子程序。
有没有办法知道运行所需的最小文件/子例程/函数集?
是的。从顶级主程序开始。
编译/链接它并获取不满意的引用列表。
对于每个不满意的引用,添加包含它的文件。
重复这两个步骤,直到不再有不满意的引用。
这将删除干净构建不需要的所有文件。是的,这是很多工作。事情并不总是那么容易。
如果您想知道特定输入的运行不需要什么,那么您需要一个覆盖工具,例如gcov。未使用的例程将显示覆盖计数为 0。然后,如果您真的想摆脱它们,请将它们提取到单独的源文件中,以便您可以排除它们,并确保它们没有被调用。