首页 > 解决方案 > 如何编译 unison 的静态版本

问题描述

在我的 OS X 机器上,brew install unison给了我 2.51.2 版本。但我需要与之同步的系统运行 CentOS 6.10,似乎没有现有的 2.51.2 二进制文件。我也无法从那台机器上的源代码编译,因为它没有正确的工具,而且我不是 root。

为了解决这个问题,我想在我是 root 的 Ubuntu 机器上从源代码编译一致。但这必须是静态编译才能在 CentOS 机器上运行。

如何制作统一的静态二进制文件?

Makefile有这条线,include src/Makefile.OCaml但我对 OCaml 一无所知,并且不确定我需要更改哪些内容才能制作静态二进制文件。

标签: makefileocamlstatic-linkingunison

解决方案


在 Makefile 中,应该有一行STATIC = false. 要么将其更改为true,要么仅使用该行进行编译make STATIC=true

需要注意的是,根据这篇博文,该STATIC选项至少在 2.32.52 版本中并没有做任何事情,而且我在更改日志中没有看到任何更改表明这已得到修复,但博文的作者说,并且我已经确认,构建静态二进制文件适用于最新版本的 Unison, 2.48


推荐阅读