我想为我的 C++ 库项目使用zstd压缩库。我的构建系统基于meson。我的meson.build文件看起来像这样
project('foo', 'cpp', default_options :
['cpp_std=c++17', 'buildtype=release'],
version : '0.1', license: 'MIT')
subproject('zstd', default_options: 'builddir=build/meson')
我制作了一个 zstd 介子包装文件subprojects/zstd.wrap
[wrap-file]
directory = zstd-1.4.5
source_url = https://github.com/facebook/zstd/releases/download/v1.4.5/zstd-1.4.5.tar.gz
source_filename = zstd-1.4.5.tar.gz
source_hash = 98e91c7c6bf162bf90e4e70fdbc41a8188b9fa8de5ad840c401198014406ce9e
当我运行时meson compile
出现此错误
../meson.build:5:0: ERROR: Subproject exists but has no meson.build file
问题似乎在于 zstd 使用 CMAKE 作为默认构建系统,并且介子文件位于build/meson
子文件夹中,而不是位于介子期望的根目录中。我试过了:
- 用于子项目
default_options: 'builddir=build/meson'
,但没有效果 - 使用 CMAKE 集成构建 zstd 但因其他错误而失败,这使得设置更加复杂
- 制作补丁以将 zstd 介子构建文件向上移动两个目录到 的根目录
zstd
,但这需要更多的依赖关系,后来由于路径解析失败,因为 zstd 期望文件在根目录中build/meson
而不是在根目录中。
我可以轻松地将 zstd 构建为我的 C++ 库的介子子项目吗?