源码编译流程
-
下载源代码
wget https://hdf-wordpress-1.s3.amazonaws.com/wp-content/uploads/manual/HDF5/HDF5_1_14_3/src/hdf5-1.14.3.zip -
解压
unzip hdf5-1.14.3.zip -
进入解压后的目录
cd hdf5-1.14.3 -
编译
依次执行下面的命令
./configure --prefix=/usr/local/hdf5 --enable-cxx
make
make check # run test suite.
sudo make install
make check-install # verify installation.
输出
:~/project/3rd_party/hdf5-1.14.3$ ./configure --prefix=/usr/local/hdf5 --enable-cxx
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking shell variables initial values... done
checking if basename works... yes
checking if xargs works... yes
checking for cached host... none
checking enable warnings as
.................................................Shared C++ Library: yesStatic C++ Library: yesJava: noFeatures:
---------Parallel HDF5: noParallel Filtered Dataset Writes: noLarge Parallel I/O: noHigh-level library: yes
Dimension scales w/ new references: noBuild HDF5 Tests: yesBuild HDF5 Tools: yesBuild GIF Tools: noThreadsafety: noDefault API mapping: v114With deprecated public symbols: yesI/O filters (external): deflate(zlib)Map (H5M) API: noDirect VFD: noMirror VFD: noSubfiling VFD: no(Read-Only) S3 VFD: no(Read-Only) HDFS VFD: noPackages w/ extra debug output: noneAPI tracing: noUsing memory checker: noFunction stack tracing: noUse file locking: best-effortStrict file format checks: noOptimization instrumentation: no
附录
如果在执行./configure --prefix=/usr/local/hdf5 --enable-cxx的时候出现下面的错误
输出
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/home/hello/project/3rd_party/hdf5-1.14.3/bin/missing: line 3: $'\r': command not found
/home/hello/project/3rd_party/hdf5-1.14.3/bin/missing: line 5: $'\r': command not found
/home/hello/project/3rd_party/hdf5-1.14.3/bin/missing: line 8: $'\r': command not found
/home/hello/project/3rd_party/hdf5-1.14.3/bin/missing: line 13: $'\r': command not found
/home/hello/project/3rd_party/hdf5-1.14.3/bin/missing: line 18: $'\r': command not found
/home/hello/project/3rd_party/hdf5-1.14.3/bin/missing: line 21: $'\r': command not found
/home/hello/project/3rd_party/hdf5-1.14.3/bin/missing: line 26: $'\r': command not found
/home/hello/project/3rd_party/hdf5-1.14.3/bin/missing: line 32: syntax error near unexpected token `$'in\r''
'home/hello/project/3rd_party/hdf5-1.14.3/bin/missing: line 32: `case $1 in
configure: WARNING: 'missing' script is too old or missing
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
configure: error: cannot run /bin/bash ./bin/config.sub
这是configure脚本文件中存在Windows风格的行结束符(CRLF)。Linux等Unix基础的系统期望行结束符只是LF,额外的CR字符被解释为命令的一部分,导致错误。
你可以使用dos2unix这样的工具来转换你文件中的行结束符。如果还没有安装,你可以使用sudo apt-get install dos2unix来安装。
使用下面的额命令把当前文件里的所有包含windows风格的行结束符的文件转换成unix风格的行结束符
find . -type f -exec dos2unix {} \;