在 Amazon Linux 上构建 QuantLib

在 Amazon Linux 上构建 QuantLib

我想得到定量库版本 1.13 在 Amazon Linux 上运行。

.rpm在以下位置找到了一些文件https://pkgs.org/download/QuantLib,虽然 Fedora 有最新版本.rpm,但 CentOS 没有(CentOS 文件似乎与 Amazon Linux 兼容)。

我能够从源代码成功构建该库,但是当我这样做时,它会创建一个 1.2GBlibQuantLib.a文件和一个 421MBlibQuantLib.so.0.0.0文件。

文件.rpm位于https://pkgs.org/download/QuantLib都是~25MB。

最终,我试图将 QuantLib 打包得足够好,以便我可以在 AWS Lambda 环境中运行它。这需要压缩的二进制文件大小约为 50MB,并且与 Amazon Linux AMI for Lambda 兼容。

我的问题:

  • .rpm为什么文件大小与我从源代码构建时生成的libQuantLib.a/文件大小之间存在如此大的差异?libQuantLib.so.0.0.0.rpm文件不是库的完整版本吗?我的构建结果是否包含很多绒毛?

  • 是否有可能从源代码构建并达到约 25MB 的大小,或者这种努力是否徒劳?

答案1

您手工构建的库很可能是使用调试信息构建的,这就是它们如此大的原因。你可以尝试strip libQuantLib.so.0.0.0看看它会变小多少。

您可以尝试重建官方RPM亚马逊Linux 2像这样:

  1. 下载源 RPM ( QuantLib-1.4-7.el7.src.rpm)
  2. 安装rpm-build包(或者rpmbuild?不太确定名称是什么AL2
  3. 运行rpmbuild --rebuild QuantLib-1.4-7.el7.src.rpm,如果一切顺利,您应该已经QuantLib-...x86_64.rpm构建了亚马逊Linux 2一段时间后。

那里可能是一些依赖性问题。如果您不熟悉构建 RPM,请随时在此处跟进或提出另一个问题。

不过,这应该可以帮助您入门。祝你好运:)

更新 - 无QuantLib-doc包构建。

根据下面的评论,构建QuantLib-doc需要很多额外的依赖项。重建它没有文档请执行下列操作:

  1. 下载源 RPM,例如到/tmp
  2. 在空目录中运行rpm2cpio /tmp/QuantLib-...src.rpm
  3. 编辑并QuantLib.spec注释掉%package doc和部分%description doc%files doc
  4. 构建 RPMrpmbuild -ba QuantLib.spec

这应该消除安装许多依赖项的需要。

相关内容