源码编译流程
-
下载源代码
-
解压
unzip hdf5-1.14.3.zip
-
进入解压后的目录
cd hdf5-1.14.3
-
编译
依次执行下面的命令
bash
./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: yes
Static C++ Library: yes
Java: no
Features:
---------
Parallel HDF5: no
Parallel Filtered Dataset Writes: no
Large Parallel I/O: no
High-level library: yes
Dimension scales w/ new references: no
Build HDF5 Tests: yes
Build HDF5 Tools: yes
Build GIF Tools: no
Threadsafety: no
Default API mapping: v114
With deprecated public symbols: yes
I/O filters (external): deflate(zlib)
Map (H5M) API: no
Direct VFD: no
Mirror VFD: no
Subfiling VFD: no
(Read-Only) S3 VFD: no
(Read-Only) HDFS VFD: no
Packages w/ extra debug output: none
API tracing: no
Using memory checker: no
Function stack tracing: no
Use file locking: best-effort
Strict file format checks: no
Optimization 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 {} \;