gpt4 book ai didi

linux - 创建可移植和静态的 fortran linux 二进制文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:21 25 4
gpt4 key购买 nike

我正在研究从 Fortran 代码创建可移植静态 Linux 二进制文件的选项(从某种意义上说,二进制文件应该能够在任何新的和相当旧的 Linux 发行版上运行)。如果我理解正确(从 C 推断),可移植性的主要问题是 glibc 向前兼容但不向后兼容(即在旧发行版上创建的静态二进制文件将在新发行版上运行,但反之亦然)。这至少在我迄今为止有限的测试中似乎有效(有一个警告,在某些情况下,使用 Scratch 文件会导致在较新的发行版上运行的段错误)。

至少在 C 中似乎可以通过添加遗留 glibc header 来避免在旧发行版上进行编译,如中所述

https://github.com/wheybags/glibc_version_header

此特定方法不适用于 Fortran 代码和编译器,但我想知道是否有人知道类似的方法(或更具体地说,创建可移植的 Fortran 二进制文件可能需要什么,旧的 glibc 是否足够或必须还使用旧的 libfortran 等)?

最佳答案

我建议使用 manylinux docker 镜像作为起点。

简而言之:manylinux 是一个“平台定义”,用于分发在大多数当前 linux 系统上运行的二进制轮(可能包含编译代码的 Python 包)。 manylinux 的需求及其定义可以在 Python Enhancement Proposal 513 中找到。

他们的镜像基于 CentOS 5,包括所有基本的开发工具,包括 gfortran。您的流程是(我没有测试,可能需要稍作调整):

  1. 运行来自 https://github.com/pypa/manylinux 的 docker 镜像
  2. 使用标记 -static-libgfortran 编译您的代码

可能的调整是在他们不提供 libgfortran 的静态版本的情况下,在这种情况下您可以添加它 here .

生成的代码应该可以在大多数当前使用的 linux 系统上运行。

关于linux - 创建可移植和静态的 fortran linux 二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52053356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com