HXMTSOFT v2.04安装指南 [pdf]
注:对安装有任何疑问,可通过网站helpdesk获得技术支持。
安装说明根据安装系统的不同,分为以下几个部分:
一、macOS/Mac OS X用户的安装;
二、Ubuntu Linux 用户的安装;
三、Scientific Linux CERN (SLC) 用户的安装;
四、标定数据库的安装;
五、HXMT docker 容器的安装
六、常见问题及解决办法。
1.1.1 硬件要求
a. 内存 > 4 G
b. CPU > 2 GHz
c. 硬盘容量 > 500 G
1.2 一、macOS / Mac OS X用户的安装
我们提供两种安装方式,1. 只安装HXMT用户分析软件。适用于单独安装HXMTDAS,没有安装HEASoft或不与已安装的HEASoft同时使用的用户;2. 与HEASoft 同时安装。适用于同时安装HEASoft软件包和HXMTDAS数据分析软件(两种安装方法的优缺点和可能遇到的问题见第五章“常见问题及解决办法”)。
1. 只安装 HXMT 用户分析软件
1.3
1.4 软件准备:
a. 下载HXMT 用户分析软件v2.04 源码安装包。
b. 下载并安装 Python (须使用 Python 3.x版本)。
c. 安装以下Python 模块:astropy numpy matplotlib os sys time scipy datetime collections argparse glob xlrd xlwt
1.5 安装编译:
a. 解压:
gunzip hxmtsoftv2.04.tar.gz
tar xvf hxmtsoftv2.04.tar
b. 配置:
cd hxmtsoftv2.04/BUILD_DIR
./configure
软件默认会安装到 /usr/local 路径下,如果你没有该路径的权限,则在安装或使用的过程中会要求你使用管理员权限。我们建议将HXMT用户分析软件安装至你拥有读、写权限的本地目录,使用 --prefix 参数指定安装路径(我们以/path/to/hxmtsoft/ 路径为例):
cd hxmtsoftv2.04/BUILD_DIR
./configure --prefix=/path/to/hxmtsoft/
如果配置(configure)这一步未报错,则可进行下一步编译,如果报错,请先排查错误重新配置(常见错误见第五章“常见问题及解决办法”),直到配置成功才可进行下一步的编译。
c. 编译:
make
make install
编译过程中可能遇到的问题见第五章“常见问题及解决办法”。如果编译成功(显示Finished,或无Error),则成功编译软件,最后设置环境变量即完成安装。
d. 设置环境变量:
对于使用csh,tcsh的用户
setenv HEADAS /path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.csh
对于使用sh,ash,ksh,bash的用户
export HEADAS=/path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.sh
不同的计算机上述的 (PLATFORM) 会有所不同,例如 PLATFORM 可能为 x86_64-apple-darwin18.5.0,安装完成后,可在你指定的安装路径下查看以“x86”开头的文件夹名称。
2. 与 HEASoft同时安装
1.6
1.7 软件准备:
a. 下载HEASoft软件包(需要选择源码安装包,以6.26为例)
b. 下载HXMT 用户分析软件v2.04 源码安装包。
c. 下载并安装 Python (须使用 Python 3.x 版本)。
d. 安装以下Python 模块:astropy numpy matplotlib os sys time scipy datetime collections argparse glob xlrd xlwt
1.8 安装编译:
a. 解压:
先解压HXMT用户分析软件安装包
gunzip hxmtsoftv2.04.tar.gz
tar xvf hxmtsoftv2.04.tar
cd hxmtsoftv2.04
ls
可以看到 HXMT用户分析软件安装包内有如下文件
BUILD_DIR Release_Notes_6.28 demo heagen
CMakeLists.txt Xspec ftools heasptools tcltk
HEASOFT-INSTALL.TXT attitude heacore heatools hxmt
b. 将上述hxmt 文件夹(从HXMT分析软件安装包中)拷贝到HEASoft 文件夹
cp -r hxmt /path/to/heasoft-6.28/
c. 修改HEASoft 中的configure文件
cd /path/to/heasoft-6.28/BUILD_DIR
使用你熟悉的文本编辑器,将configure文件中的mpfit_required=no 修改为 mpfit_required=yes
d. 配置:
./configure --with-components="heacore tcltk external attitude heasptools heatools heagen demo suzaku swift Xspec integral maxi nicer nustar hitomi xmm glast ftools GSSC heasim hxmt"
上述加粗的为HEASoft中你可以选择安装的各个卫星的模块,在最后加入hxmt,即可以将HXMT用户分析软件与其他HEASoft模块一起安装。
e. 编译:
make
make install
编译过程中可能遇到的问题见第五章“常见问题及解决办法”。如果编译成功(显示Finished,或无Error),则成功编译软件,最后设置环境变量即完成安装。
f. 设置环境变量:
对于使用csh,tcsh的用户
setenv HEADAS /path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.csh
对于使用sh,ash,ksh,bash的用户
export HEADAS=/path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.sh
不同的计算机上述的 (PLATFORM) 会有所不同,例如 PLATFORM 可能为 x86_64-apple-darwin18.5.0,安装完成后,可在你指定的安装路径下查看以“x86”开头的文件夹名称。
1.9 二、Ubuntu Linux 用户的安装
我们提供两种安装方式,1. 只安装HXMT用户分析软件。适用于单独安装HXMTDAS,没有安装HEASoft或不与已安装的HEASoft同时使用的用户;2. 与HEASoft 同时安装。适用于同事安装HEASoft软件包和HXMTDAS数据分析软件(两种安装方法的优缺点和可能遇到的问题见第五章“常见问题及解决办法”)。
1. 只安装 HXMT 用户分析软件
1.9.1 软件准备:
a. 下载HXMT 用户分析软件v2.04 源码安装包。
b. 下载并安装 Python (须使用 Python 3.x )。
c. 安装以下Python 模块:astropy numpy matplotlib os sys time scipy datetime collections argparse glob xlrd xlwt
d. 预安装一些编译中要用到的软件包:
sudo apt-get -y install libreadline6-dev
sudo apt-get -y install libcurl4
sudo apt-get -y install libcurl4-gnutls-dev
sudo apt-get -y install libncurses5-dev
sudo apt-get -y install xorg-dev
sudo apt-get -y install gcc g++ gfortran
sudo apt-get -y install perl-modules
sudo apt-get -y install python3-dev
1.9.2 安装编译:
a. 解压:
gunzip hxmtsoftv2.04.tar.gz
tar xvf hxmtsoftv2.04.tar
b. 配置:
cd hxmtsoftv2.04/BUILD_DIR
./configure
软件默认会安装到 /usr/local 路径下,如果你没有该路径的权限,则在安装或使用的过程中会要求你使用管理员权限。我们建议将HXMT用户分析软件安装至你拥有读、写权限的本地目录,使用 --prefix 参数指定安装路径(我们以/path/to/hxmtsoft/ 路径为例):
cd hxmtsoftv2.04/BUILD_DIR
./configure --prefix=/path/to/hxmtsoft/
如果配置(configure)这一步未报错,则可进行下一步编译,如果报错,请先排查错误重新配置(常见错误见第五章“常见问题及解决办法”),直到配置成功才可进行下一步的编译。
c. 编译:
make
make install
编译过程中可能遇到的问题见第五章“常见问题及解决办法”。如果编译成功(显示Finished,或无Error),则成功编译软件,最后设置环境变量即完成安装。
d. 设置环境变量:
对于使用csh,tcsh的用户
setenv HEADAS /path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.csh
对于使用sh,ash,ksh,bash的用户
export HEADAS=/path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.sh
不同的计算机上述的 (PLATFORM) 会有所不同,例如 PLATFORM 可能为 x86_64-pc-linux-gnu-libc2.23,安装完成后,可在你指定的安装路径下查看以“x86”开头的文件夹名称。请注意,在部分Linux操作系统中,安装后会出现两个 “x86”开头的文件夹(详见第五章”常见问题及解决办法”),需合并该文件夹后再指定(PLATFORM)。
2. 与 HEASoft同时安装
1.9.3 软件准备:
a. 下载HEASoft软件包(需要选择源码安装包,以6.28为例)
b. 下载HXMT 用户分析软件v2.04 源码安装包。
c. 下载并安装 Python (须使用 Python 3.x 版本)。
d. 安装以下Python 模块:astropy numpy matplotlib os sys time scipy datetime collections argparse glob xlrd xlwt
e. 预安装一些编译中要用到的软件包:
sudo apt-get -y install libreadline6-dev
sudo apt-get -y install libcurl4
sudo apt-get -y install libcurl4-gnutls-dev
sudo apt-get -y install libncurses5-dev
sudo apt-get -y install xorg-dev
sudo apt-get -y install gcc g++ gfortran
sudo apt-get -y install perl-modules
sudo apt-get -y install python3-dev
1.9.4 安装编译:
a. 解压:
先解压HXMT用户分析软件安装包
gunzip hxmtsoftv2.04.tar.gz
tar xvf hxmtsoftv2.04.tar
cd hxmtsoftv2.04
ls
可以看到 HXMT用户分析软件安装包内有如下文件
BUILD_DIR HEASOFT-INSTALL.TXT attitude ftools heagen heatools tcltk CMakeLists.txt Release_Notes_6.28 demo heacore heasptools hxmt
b. 将上述hxmt 文件夹(从HXMT分析软件安装包中)拷贝到HEASoft 文件夹
cp -r hxmt /path/to/heasoft-6.28/
c. 修改HEASoft 中的configure文件
cd /path/to/heasoft-6.28/BUILD_DIR
使用你熟悉的文本编辑器,将configure文件中的mpfit_required=no 修改为 mpfit_required=yes
d. 配置:
./configure --with-components="heacore tcltk external attitude heasptools heatools heagen demo suzaku swift Xspec integral maxi nicer nustar hitomi xmm glast ftools GSSC heasim hxmt"
上述加粗的为HEASoft中你可以选择安装的各个卫星的模块,在最后加入hxmt,即可以将HXMT用户分析软件与其他HEASoft模块一起安装。
e. 编译:
make
make install
编译过程中可能遇到的问题见第五章“常见问题及解决办法”。如果编译成功(显示Finished,或无Error),则成功编译软件,最后设置环境变量即完成安装。
f. 设置环境变量:
对于使用csh,tcsh的用户
setenv HEADAS /path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.csh
对于使用sh,ash,ksh,bash的用户
export HEADAS=/path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.sh
不同的计算机上述的 (PLATFORM) 会有所不同,例如 PLATFORM 可能为 x86_64-pc-linux-gnu-libc2.23,安装完成后,可在你指定的安装路径下查看以“x86”开头的文件夹名称。请注意,在部分Linux操作系统中,安装后会出现两个 “x86”开头的文件夹(详见第五章”常见问题及解决办法”),需合并该文件夹后再指定(PLATFORM)。
三、Scientific Linux CERN (SLC) 用户的安装
我们提供两种安装方式,1. 只安装HXMT用户分析软件。适用于单独安装HXMTDAS,没有安装HEASoft或不与已安装的HEASoft同时使用的用户;2. 与HEASoft 同时安装。适用于同事安装HEASoft软件包和HXMTDAS数据分析软件(两种安装方法的优缺点和可能遇到的问题见第五章“常见问题及解决办法”)。
1. 只安装 HXMT 用户分析软件
1.9.5 软件准备:
a. 下载HXMT 用户分析软件v2.04 源码安装包。
b. 下载并安装 Python (须使用 Python 3.x 版本)。
c. 安装以下Python 模块:astropy numpy matplotlib os sys time scipy datetime collections argparse glob xlrd xlwt
d. 预安装一些编译中要用到的软件包:
sudo yum -y install ncurses-devel
sudo yum -y install libcurl-devel
sudo yum -y install libXt-devel
sudo yum -y install readline6-devel
sudo yum -y install gcc gcc-c++
sudo yum -y install gcc gcc-gfortran
sudo yum -y install python-devel
sudo yum -y install make
sudo yum -y install perl-devel
1.9.6 安装编译:
a. 解压:
gunzip hxmtsoftv2.04.tar.gz
tar xvf hxmtsoftv2.04.tar
b. 配置:
cd hxmtsoftv2.04/BUILD_DIR
./configure
软件默认会安装到 /usr/local 路径下,如果你没有该路径的权限,则在安装或使用的过程中会要求你使用管理员权限。我们建议将HXMT用户分析软件安装至你拥有读、写权限的本地目录,使用 --prefix 参数指定安装路径(我们以/path/to/hxmtsoft/ 路径为例):
cd hxmtsoftv2.04/BUILD_DIR
./configure --prefix=/path/to/hxmtsoft/
如果配置(configure)这一步未报错,则可进行下一步编译,如果报错,请先排查错误重新配置(常见错误见第五章“常见问题及解决办法”),直到配置成功才可进行下一步的编译。
c. 编译:
make
make install
编译过程中可能遇到的问题见第五章“常见问题及解决办法”。如果编译成功(显示Finished,或无Error),则成功编译软件,最后设置环境变量即完成安装。
d. 设置环境变量:
对于使用csh,tcsh的用户
setenv HEADAS /path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.csh
对于使用sh,ash,ksh,bash的用户
export HEADAS=/path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.sh
不同的计算机上述的 (PLATFORM) 会有所不同,例如 PLATFORM 可能为 x86_64-pc-linux-gnu-libc2.23,安装完成后,可在你指定的安装路径下查看以“x86”开头的文件夹名称。请注意,在部分Linux操作系统中,安装后会出现两个 “x86”开头的文件夹(详见第五章”常见问题及解决办法”),需合并该文件夹后再指定(PLATFORM)。
2. 与 HEASoft同时安装
1.9.6. 软件准备:
a. 下载HEASoft软件包(需要选择源码安装包,以6.28为例)
b. 下载HXMT 用户分析软件v2.08 源码安装包。
c. 下载并安装 Python (须使用 Python 3.x 版本)。
d. 安装以下Python 模块:astropy numpy matplotlib os sys time scipy datetime collections argparse glob xlrd xlwt
e. 预安装一些编译中要用到的软件包:
sudo yum -y install ncurses-devel
sudo yum -y install libcurl-devel
sudo yum -y install libXt-devel
sudo yum -y install readline6-devel
sudo yum -y install gcc gcc-c++
sudo yum -y install gcc gcc-gfortran
sudo yum -y install python-devel
sudo yum -y install make
sudo yum -y install perl-devel
1.9.7 安装编译:
a. 解压:
先解压HXMT用户分析软件安装包
gunzip hxmtsoftv2.04.tar.gz
tar xvf hxmtsoftv2.04.tar
cd hxmtsoftv2.04
ls
可以看到 HXMT用户分析软件安装包内有如下文件
BUILD_DIR HEASOFT-INSTALL.TXT attitude ftools heagen heatools tcltk CMakeLists.txt Release_Notes_6.28 demo heacore heasptools hxmt
b. 将上述hxmt 文件夹(从HXMT分析软件安装包中)拷贝到HEASoft 文件夹
cp -r hxmt /path/to/heasoft-6.28/
c. 修改HEASoft 中的configure文件
cd /path/to/heasoft-6.28/BUILD_DIR
使用你熟悉的文本编辑器,将configure文件中的mpfit_required=no 修改为 mpfit_required=yes
d. 配置:
./configure --with-components="heacore tcltk external attitude heasptools heatools heagen demo suzaku swift Xspec integral maxi nicer nustar hitomi xmm glast ftools GSSC heasim hxmt"
上述加粗的为HEASoft中你可以选择安装的各个卫星的模块,在最后加入hxmt,即可以将HXMT用户分析软件与其他HEASoft模块一起安装。
e. 编译:
make
make install
编译过程中可能遇到的问题见第五章“常见问题及解决办法”。如果编译成功(显示Finished,或无Error),则成功编译软件,最后设置环境变量即完成安装。
f. 设置环境变量:
对于使用csh,tcsh的用户
setenv HEADAS /path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.csh
对于使用sh,ash,ksh,bash的用户
export HEADAS=/path/to/hxmtsoft/(PLATFORM)
source $HEADAS/headas-init.sh
不同的计算机上述的 (PLATFORM) 会有所不同,例如 PLATFORM 可能为 x86_64-pc-linux-gnu-libc2.23,安装完成后,可在你指定的安装路径下查看以“x86”开头的文件夹名称。请注意,在部分Linux操作系统中,安装后会出现两个 “x86”开头的文件夹(详见第五章”常见问题及解决办法”),需合并该文件夹后再指定(PLATFORM)。
四、标定数据库的安装
在成功安装了HXMT用户分析软件后,需安装及配置标定数据库CALDB,才能正确处理数据。根据两种安装方式“只安装 HXMT 用户分析软件”和“与HEASoft同时安装”,我们标定数据库的安装方式也略有区别。
1. 只安装HXMT用户分析软件
a. 下载HXMT标定数据库CALDB,得到压缩文件CALDB2.04.tar.gz
b. 解压:
gunzip CALDB2.04.tar.gz
tar xvf CALDB2.04.tar
c. 将标定数据库移动到你所指定的目录(可以自己选择存放标定数据库的目录,我们建议移动到HXMTSoft安装后的目录下,我们以/path/to/caldb/为例)
cp -r CALDB2.04 /path/to/caldb/
d. 设置环境变量
对于使用csh,tcsh的用户
setenv CALDB /path/to/caldb/CALDB2.04
setenv CALDBCONFIG $CALDB/caldb.config
setenv CALDBALIAS $CALDB/software/tools/alias_config.fits
对于使用sh,ash,ksh,bash的用户
export CALDB=/path/to/caldb/CALDB2.04
export CALDBCONFIG=$CALDB/caldb.config
export CALDBALIAS=$CALDB/software/tools/alias_config.fits
2. 与HEASoft同时安装
a. 下载HEASoft的标定数据库CALDB,得到压缩文件CALDB.tar.gz
b. 将CALDB存放至你指定的目录下(我们以 /path/to/caldb/ 为例)
c. 下载HXMT标定数据库CALDB,得到压缩文件CALDB2.04.tar.gz
d. 解压:
gunzip CALDB2.04.tar.gz
tar xvf CALDB2.04.tar
e. 将CALDB2.04中的hxmt相关内容拷贝至HEASoft的CALDB中去:
cp -r CALDB2.04/data/hxmt /path/to/caldb/CALDB/data/
f. 修改CALDB中的caldb.config文件。将CALDB2.04中的caldb.config文件中的内容添加至CALDB中的caldb.config文件:
cat CALDB2.04/caldb.config >> /path/to/caldb/CALDB/software/tools/caldb.config
g. 设置环境变量:
对于使用csh,tcsh的用户
setenv CALDB /path/to/caldb/CALDB
setenv CALDBCONFIG $CALDB/caldb.config
setenv CALDBALIAS $CALDB/software/tools/alias_config.fits
对于使用sh,ash,ksh,bash的用户
export CALDB=/path/to/caldb/CALDB
export CALDBCONFIG=$CALDB/caldb.config
export CALDBALIAS=$CALDB/software/tools/alias_config.fits
五、 HXMT docker 容器安装
HXMTsoft 现在提供 Docker 容器版本。HXMT Docker 容器是一个集成环境,包含了HXMTsoft、Python 3.x、Xspec、Xronos 等工具,其优势是可以免去安装编译 HXMT 软件、设施环境等复杂的步骤,通过下载镜像实现软件的使用,方便快捷。
Docker 容器的源码存储在 Github 仓库 https://github.com/tuoyl/hxmt_docker ,镜像存储在 docker hub 。
1. Docker 的安装
可以登录 Docker 的官网 https://www.docker.com/get-started,查询 docker的安装方法。对于 Linux 和macOS 的用户,可以通过使用包管理软件下载 docker,例如macOS 下的:
brew install docker
或 Ubuntu 系统下:
apt-get install docker.io
2. Docker 的使用方法
在 Github 仓库https://github.com/tuoyl/hxmt_docker , 有两个脚本 init_macos.sh 和 init_ubuntu.sh 快速实现所有下载镜像、启动镜像的流程。在对应的系统执行:
sh init_macos.sh
或者
sh init_ubuntu.sh
六、 常见问题及解决办法
该部分列举了安装过程中常见的问题,如果你在安装过程中遇到了其他问题,并无法解决,请通过网站helpdesk获得技术支持。
1. “只安装HXMT分析软件”还是 “与HEASoft同时安装“?
HXMT分析软件和HEASoft分析软件的框架是一致的,即可以单独安装HXMT分析软件,也可以将HXMT的软件打包至HEASoft,作为一部分进行安装。
HXMT分析软件单独安装时,除了HXMT分析所需要的软件外,还包含少量ftools,例如fv, fselect等。不包括Xspec, Xronos 等。
单独安装HXMT分析软件,优点是快捷,但可能存在的问题是,若你的本地已经装有HEASoft,则会在环境变量的设置上产生冲突(HEADAS变量和CALDB等变量名冲突)。你无法在同一个终端中既初始化HEASoft,也初始化HXMT(但你可以在不同终端分别初始化两个软件,分开使用)。
与HEASoft同时安装,可以解决冲突的问题,在同一终端既使用HXMT分析软件,也使用HEASoft的软件。但请注意,HEASoft的安装源码建议为全新的、未编译安装过的安装源码包,如果利用本机已经安装过的HEASoft代码,在进行安装编译的过程中可能会出现各种编译错误。
2. 为何预安装Python及Python模块?
HXMT分析软件中的背景模块 (HXMTBKG) 会使用到Python的程序。所以你需要预先安装Python,并使用pip, conda等模块管理工具预先安装指定的模块。
3. 在 conda 环境下安装成功,但运行报错“dyld: Library not loaded: libhxmtHEmodule.dylib”?
请注意,在编译之前,Anaconda 所设置的与编译相关的 flags,对编译有影响,请取消设置相关 flags:
“unset CFLAGS CXXFLAGS FFLAGS LDFLAGS”
4. macOS 10.15: configure 过程中,“ configure: error: cannot run C compiled programs”
macOS 10.14及以后的版本,g95不再支持,所以需要重新安装gcc8或gcc9,并在configure之前设置:
export CC=/usr/local/gcc-9.2/bin/gcc-9.2
export CXX=/usr/local/gcc-9.2/bin/g++-9.2
export FC=/usr/local/gcc-9.2/bin/gfortran-9.2
再重新进行配置
./configure
5. make 过程中提示某 ”.o”文件无法执行。
可能是遗留了一些之前编译的可执行文件。只需make clean (或make distclean),再执行 make
6. 部分系统,安装后出现多个 “x86_”文件夹
部分系统安装后,无任何报错,而在安装的路径下,会出现两个”x86“开头的文件夹。例如 :“x86_64-pc-linux-gnu-libc2.23”和 “x86_64-pc-linux-gnu-libc2.23-2”。两个文件夹下的内容,都为软件所需要的内容,我们需要将二者合并(保持文件夹结构不变,重复内容覆盖)。可使用如下命令:
rsync -av --progress x86_64-pc-linux-gnu-libc2.23-2/* x86_64-pc-linux-gnu-libc2.23/
然后可删除 x86_64-pc-linux-gnu-libc2.23-2 文件夹
rm -rf x86_64-pc-linux-gnu-libc2.23-2
7. make进行编译过程中报错,报错信息为:
readline/lib/libreadline.so: undefined reference to 'tputs'
readline/lib/libreadline.so: undefined reference to 'tgoto'
readline/lib/libreadline.so: undefined reference to 'tgetflag'
readline/lib/libreadline.so: undefined reference to 'UP'
readline/lib/libreadline.so: undefined reference to 'tgetent'
readline/lib/libreadline.so: undefined reference to 'tgetnum'
readline/lib/libreadline.so: undefined reference to 'PC'
readline/lib/libreadline.so: undefined reference to 'tgetstr'
这可能是所依赖的库和软件未预安装导致的,在系统上安装 libreadline6-dev, libncurses5-dev,然后重新运行make进行编译。
如在Ubuntu系统中执行(不同系统命令不同,使用对等的命令即可):
sudo apt-get –y install libreadline6-dev
sudo apt-get –y install libncurses5-dev
在SLC系统中则执行:
sudo yum –y install ncurses-devel
sudo yum –y install readline-devel
8. make进行编译过程中报错,报错信息为:
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atRotVect'
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atQuatToEuler'
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atInterpolateEuler'
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atNormVect'
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atEulerToQuat'
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atQuatToRM'
这是编译过程中未正确指定所需库导致的错误,在报错的编译指令后加入
–latFunction3.3,手动编译该指令,成功后再重新运行make即可。
如Ubuntu系统下,错误信息显示安装程序在路径/path/hxmt/hxmtscreen/下执行编译命令
g++ -o hxmtscreen hxmtscreen.o ...... -lhxmtlib -lhxmtHElib -lhxmtMElib -lhxmtLElib -lhxmtHEmodule -lhxmtMEmodule -lhxmtLEmodule -lhxmttoolslib -lmpfit
时报错。所以进入报错路径:
cd /path/hxmt/hxmtscreen/
加上-laFunction3.3重新编译:
g++ -o hxmtscreen hxmtscreen.o ...... -lhxmtlib -lhxmtHElib -lhxmtMElib -lhxmtLElib -lhxmtHEmodule -lhxmtMEmodule -lhxmtLEmodule -lhxmttoolslib –lmpfit –laFunction3.3
运行成功(无任何信息,无报错)后,回到最初的安装目录~/hxmtsoft/BUILD_DIR路径下重新运行make即可。
9. Mac下动态库报错,"dyld not loaded":
MacOS系统下,成功执行make, make install无任何报错,但是运行hxmtsoft的命令,诸如hegtigen,出现错误信息:
dyld: Library not loaded: libhxmtHEmodule.dylib
Referenced from: /home/user/heasoft_hxmtsoft2/x86_64-apple-darwin17.7.0/bin/hegtigen
Reason: image not found
这是由于安装后程序无法找到HEADAS所需的动态库,可通过手动指定动态库的路径解决。
首先查看某一程序的动态库依赖(以hegtigen为例):
otool –LD $HEADAS/bin/hegtigen
显示结果为:
libhxmtHEmodule.dylib (compatibility version 0.0.0, current version 0.0.0)
libhxmtlib.dylib (compatibility version 0.0.0, current version 0.0.0)
libhxmtHElib.dylib (compatibility version 0.0.0, current version 0.0.0)
@rpath/libhdinit_2.7.dylib (compatibility version 0.0.0, current version 0.0.0)
......
其中三个动态库libhxmtHEmodule.dylib, libhxmtlib.dylib, libhxmtHElib.dylib未指定动态路径,故程序无法找到该库。我们指定这三个的路径:
install_name_tool -change libhxmtHEmodule.dylib $HEADAS/lib/libhxmtHEmodule.dylib $HEADAS/bin/hegtigen
install_name_tool -change libhxmtlib.dylib $HEADAS/lib/libhxmtlib.dylib $HEADAS/bin/hegtigen
install_name_tool -change libhxmtHElib.dylib $HEADAS/lib/libhxmtHElib.dylib $HEADAS/bin/hegtigen
并将$HEADAS/lib该路径加入动态路径:
install_name_tool -add_rpath "$HEADAS/lib" $HEADAS/bin/hegtigen