我想使用 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 中删除 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(如上面所列)最终使构建适合我。 系统信息