使用 CMake 为 Macos 构建 GDAL 不起作用

问题描述 投票:0回答:1

我想使用 Java 绑定为 MacOS 构建 GDAL。问题是 CMake 在 cmake/helpers 下找不到包含内容。我收到以下错误:

-- 执行测试 HAS_NO_UNDEFINED - 失败 CMake 错误位于 frmts/zlib/contrib/infback9/CMakeLists.txt:13(包括): 包含找不到请求的文件: Gdal驱动助手

我克隆了 GDAL 存储库,并在项目的根目录下创建了一个子文件夹“build”。我还使用brew install name_of_module安装了一些必需的依赖项。

准备工作完成后,我尝试在构建目录中运行“cmake ..”。我还尝试了不同的 cmake 参数,但每次都会收到错误。

如果我在 frmts/zlib/contrib 下编辑 CMakeLists.txt 并插入 set(CMAKE_MODULE_PATH /Users/xxxx/work/gdal/gdal/cmake/helpers),则构建适用于 zlib。但是,然后我收到下一个依赖项的错误。我如何配置构建?

我预计构建应该只需在构建目录中调用 cmake .. 即可工作。文档表明它应该以这种方式工作。

cmake gdal
1个回答
0
投票

简短回答:

尝试从 cmake 中删除 Arrow:

rm -rf /usr/local/lib/cmake/Arrow

然后使用以下标志运行构建(来自构建目录):

cmake .. \
        -DGDAL_USE_GEOTIFF_INTERNAL=ON \
        -DGDAL_USE_PNG_INTERNAL=ON \
        -DGDAL_USE_POSTGRESQL=OFF \
        -DGDAL_USE_WEBP=OFF \
        -DGDAL_USE_ARROW=OFF \
        -DGDAL_USE_PARQUET=OFF \
        -DGDAL_USE_LIBKML=OFF \
        -DBUILD_CSHARP_BINDINGS=OFF

背景

我最初发现这个问题是因为我也遇到了同样的问题。我最终通过在 GDAL cmake_build.yml GitHub actions 工作流程文件中分离 macOS 构建配置找到了这个解决方案。特别是,第 592 行的这一步似乎是关键:

# Remove broken Arrow as it causes CMake detection issue
rm -rf /usr/local/lib/cmake/Arrow

此行上方的brew 命令也可能相关,具体取决于您已经安装的内容。

这让我克服了这次失败,但随后我遇到了一系列其他问题。 使用第 560 行中的一些 CMAKE_OPTIONS(如上面所列)最终使构建适合我。 系统信息

所有这些都是在 macOS 13.5 上使用 AppleClang 14.0.3.14030022 C 编译器针对 GDAL 3.7.0 签出运行的

© www.soinside.com 2019 - 2024. All rights reserved.