Я пытаюсь скомпилировать HDF4 и HDF-EOS2, включая их библиотеки Fortran, в среде conda. Я начал с двух сырья в Конда-Фордж.
В сценарии build.sh для HDF4 я удаляю параметры конфигурации --disable-fortran
и --enable-shared
(поскольку библиотека Fortran по какой-то причине не поддерживает общие библиотеки) и добавляю --with-szip
и {{ compiler('fortran') }}
. В meta.yaml я добавляю szip
к хосту и запускаю требования. Это не удается во время настройки, утверждая, что он не может найти libjpeg. Я могу это исправить, добавив zlib, szip и jpeg к требованиям сборки, но я хотел бы знать, почему в оригинальном рецепте они не нужны?
Компиляция HDF-EOS2 использует скрипт h4cc
, который является частью библиотеки HDF4. При компиляции в conda-build это завершается ошибкой, поскольку этот сценарий жестко связан с копией gcc
в среде сборки HDF4. Например, строка 46
h4cc
в результирующих тарболлах,
CCBASE="/data/conda/envs/test0/conda-bld/hdf4_1547812126274/_build_env/bin/x86_64-conda_cos6-linux-gnu-gcc"
Как мне заставить conda-build распознать и заменить этот путь? Это уже перехватывает пути, которые указывают на рабочий каталог (заменяя их на /opt/anaconda1anaconda2anaconda3
), но не на путь среды сборки.
Я надеюсь, что другие мои проблемы могут быть решены, если я смогу решить эти два вопроса.