Swift.org

主要观点:

  • Swift 可用于构建多种平台软件,Linux 平台构建尤其有趣,以往 Swift 写的 Linux 程序需安装 Swift 运行时及依赖,且不同 Linux 发行版程序不一定兼容。
  • Swift 静态 Linux SDK 可解决上述问题,能构建完全静态链接的可执行文件,不依赖外部库,可在任何 Linux 发行版运行,且可在多种平台开发测试后部署到 Linux 服务器。
  • 链接分为静态链接和动态链接,两者在链接时间和库的构成上有差异,静态链接可只包含实际需要的代码,动态链接在运行时链接。
  • 静态链接的优缺点:无运行时开销、只包含实际需要的库代码、无需单独安装动态库、无运行时版本问题;缺点是程序不能共享代码、更新依赖需重新构建、可执行文件较大。
  • 在 Linux 上可使用静态链接消除对系统库的依赖,构建可在任何发行版运行的可执行文件。
  • 使用静态 Linux SDK 前需安装开源工具链,注意工具链与 SDK 版本匹配等事项,安装后可创建代码目录、创建程序包、本地构建运行,还可构建不同架构的 Linux 二进制文件并在 Linux 系统上执行,使用 Foundation 或 Swift NIO 的包可直接使用,使用 C 库的包需调整为导入 Musl 模块,若有需要可编辑本地包依赖文件。

关键信息:

  • Swift 可用于多种平台,Linux 构建需注意运行时依赖。
  • 静态 Linux SDK 可构建静态链接可执行文件及解决相关问题。
  • 链接类型及差异。
  • 静态链接的优缺点。
  • 使用静态 Linux SDK 的准备及操作步骤。

重要细节:

  • 工具链安装地址为 swift.org,不能用 Xcode 工具链,MacOS 需按指示使用对应编译器,工具链要与 SDK 版本匹配,安装 SDK 需带 --checksum 选项。
  • 创建代码目录、初始化程序包、本地构建运行命令。
  • 不同架构构建命令及查看文件信息命令。
  • 静态链接消除依赖的原理及使用 Musl 库的原因。
  • 调整使用 C 库的包的方法及可编辑本地包依赖。
阅读 11
0 条评论