茱莉亚软件包 HDF5 不支持 GCC "aarch64-linux-gnu"



我正在尝试在 Julia 中使用 HDF5 包,但没有成功,尝试添加时出现以下错误。

julia> Pkg.add("HDF5")
      Updating registry at `~/.julia/registries/General`
      Updating git-repo `https://github.com/JuliaRegistries/General.git`
      Resolving package versions...
      Updating `~/.julia/environments/v1.0/Project.toml`
      [no changes]
      Updating `~/.julia/environments/v1.0/Manifest.toml`
      [no changes]

我在构建它时得到以下内容。

julia> Pkg.build("HDF5")
       Building CMake → `~/.julia/packages/CMake/nSK2r/deps/build.log`
       Building Blosc → `~/.julia/packages/Blosc/lzFr0/deps/build.log`
       Building HDF5 ─→ `~/.julia/packages/HDF5/Y9Znv/deps/build.log`
      ┌ Error: Error building `HDF5`:
      │ ERROR: LoadError: Your platform ("aarch64-linux-gnu", parsed as "aarch64-linux-gnu-gcc4-cxx11") is not supported by this package!
      │ Stacktrace:
      │  [1] error(::String) at ./error.jl:33
      │  [2] top-level scope at /home/nvidia/.julia/packages/HDF5/Y9Znv/deps/build.jl:35
      │  [3] include at ./boot.jl:317 [inlined]
      │  [4] include_relative(::Module, ::String) at ./loading.jl:1038
      │  [5] include(::Module, ::String) at ./sysimg.jl:29
      │  [6] include(::String) at ./client.jl:388
      │  [7] top-level scope at none:0
      │ in expression starting at /home/nvidia/.julia/packages/HDF5/Y9Znv/deps/build.jl:31
      └ @ Pkg.Operations ~/julia/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1068

这是安装的 GCC。

nvidia@tegra-ubuntu:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/5/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.11' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-arm64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-arm64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-arm64 --with-arch-directory=aarch64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.11)

感谢您的帮助。

我在ARM上构建的Julia也遇到了同样的可怕麻烦。似乎这种对自定义二进制文件的依赖已经在 HDF5 v0.12 中引入。所以对我来说,它强制使用旧版本的HDF5:

pkg> add HDF5@0.11.1
pkg> pin HDF5@0.11.1

之前,我已经安装了(在Debian/armhf中(hdf5-tools,libhdf5-dev。

希望这有帮助。但我认为我们应该通知开发人员,因为 HDF5 是一个非常重要的 pkg(被 JLD 使用,没有它 Julia 几乎无法使用(,并且限制为非常小的一组支持的架构是愚蠢的。

最新更新