安装ROOT后无法编译xps,缺少库

Unable to compile xps after installing ROOT, missing libraries

本文关键字:xps 编译 ROOT 安装      更新时间:2023-10-16

我正在尝试在R中安装xps,并且已经从CERN安装了ROOT。

在编译过程中,我得到:

TMLMath.cxx:51:19:致命错误:TMath.h:没有这样的文件或目录#包括"TMath.h"^编译终止。make:***[TMLPath.o]错误1错误:包"xps"编译失败

我尝试手动添加此文件,然后需要另一个,然后是另一个。。。直到错误不仅是缺少文件,而且是重新定义了内容(请参阅此处的注释),再次编译失败。

我的ROOT详细信息是:

版本5.34/14 2013年12月16日根部5.34/14(封头/v5-34-00-patches@v5-34-13-131-gd110ad3,2014年1月7日00:12:00在linuxx8664gcc上)CINT/ROOT C/C++解释器版本5.18.00,7月2日,2010年
根在哪里root:/usr/bin/root.exe/etc/root/usr/bin/X11/root.exe/usr/include/root/usr/share/root/usr/share/man1/root.1.gz
我试图在新下载的root版本上使用make uninstall,但可能令人担忧的是,它什么也没用(我从中删除了我最初使用make'd的文件夹)

我想也许我的ROOT版本缺少了其中的一些,因为xps依赖于旧版本的ROOT?然而,手册显示了最近的日期,所以这并不是一个被忽视的软件(如果我理解正确的话)。。。

ROOT安装得很好,我能找到的所有先决条件都安装好了:

sudo apt get install build基本dpkg dev make g++gcc binutils libx11 dev libxpm dev libxft dev libxext dev gfortran libssl dev libpcre3 dev libglu1 mesa dev libglew dev libftgl dev libmysqlclient dev libfftw3 dev libcfitsio3 dev graphviz dev libavahi compat libdnssd dev libldap2 dev python dev libxml2 dev libkrb5 dev librgsl0 dev libqt4 dev xfs xfstt t1-xfree86-nonfreettf-xfree86-nonfree ttf-xfree 86-nonfree-syriac xfonts-75dpi xfonts-100dpi

如有任何帮助,请告知我是否应该提供我的系统的更多详细信息。

生物导体安装的全部输出:

>biocLite('xps')生物镜像(_M):http://bioconductor.org使用Bioconductor 3.0版(BiocInstaller 1.16.1),R 3.1.2版。安装软件包"xps"正在尝试URL'http://bioconductor.org/packages/3.0/bioc/src/contrib/xps_1.26.0.tar.gz'内容类型"application/x-zip"长度6669399字节(6.4 Mb)打开的URL==================================================下载6.4 Mb*正在安装*source*包"xps"。。。正在检查gcc。。。gcc-std=gnu99正在检查C编译器的默认输出文件名。。。a.out正在检查C编译器是否工作。。。对检查我们是否在交叉编译。。。不正在检查可执行文件的后缀。。。正在检查对象文件的后缀。。。o检查我们是否使用GNU C编译器。。。对检查gcc-std=gnu99是否接受-g。。。对检查gcc-std=gnu99选项以接受ANSI C…不需要正在检查如何运行C预处理器。。。gcc-std=gnu99-E正在检查gcc。。。(缓存)gcc-std=gnu99检查我们是否使用GNU C编译器。。。(缓存)是检查gcc-std=gnu99是否接受-g。。。(缓存)是检查gcc-std=gnu99选项以接受ANSI C…(缓存)无需在/usr/r目录中找到ROOT版本5.34/14**libs**拱形g++-I/usr/include-O2-墙-fPIC-phread-m64-I/usr/include/root-c TMLMath.cxxTMLMath.cx:51:19:致命错误:TMath.h:没有这样的文件或目录#包括"TMath.h"^编译终止。make:***[TMLPath.o]错误1错误:包"xps"的编译失败*删除"/home/louis/R/x86_64-pc-linux-gnu-library/3.1/xps"下载的源程序包位于'/tmp/RtmpZVLbW/downloaded_packages'警告消息:在install.packages(pkgs=pkgs,lib=lib,repos=repos,…)中:软件包"xps"的安装具有非零退出状态

编辑:在运行R:之前,我遵循了ROOTSYS变量的更改

导出ROOTSYS=/usr/export"PATH=$ROOTSYS/bin:$PATH">

我最初使用的是ROOTSYS=/usr/include/root,这是我找到whereis root程序的地方。然而,这给出了一个不同的错误——/usr/bin/root/include not a directory。因此使用ROOTSYS=/usr。。。

>源("http://bioconductor.org/biocLite.R")Bioconductor 3.0版(BiocInstaller 1.16.1)?biocLite寻求帮助>biocLite生物镜像(_M):http://bioconductor.org使用Bioconductor 3.0版(BiocInstaller 1.16.1),R 3.1.2版。安装软件包"xps"正在尝试URL'http://bioconductor.org/packages/3.0/bioc/src/contrib/xps_1.26.0.tar.gz'内容类型"application/x-zip"长度6669399字节(6.4 Mb)打开的URL==================================================下载6.4 Mb*正在安装*source*包"xps"。。。正在检查gcc。。。gcc-std=gnu99正在检查C编译器的默认输出文件名。。。a.out正在检查C编译器是否工作。。。对检查我们是否在交叉编译。。。不正在检查可执行文件的后缀。。。正在检查对象文件的后缀。。。o检查我们是否使用GNU C编译器。。。对检查gcc-std=gnu99是否接受-g。。。对检查gcc-std=gnu99选项以接受ANSI C…不需要正在检查如何运行C预处理器。。。gcc-std=gnu99-E正在检查gcc。。。(缓存)gcc-std=gnu99检查我们是否使用GNU C编译器。。。(缓存)是检查gcc-std=gnu99是否接受-g。。。(缓存)是检查gcc-std=gnu99选项以接受ANSI C…(缓存)无需在/usr/r目录中找到ROOT版本5.34/14**libs**拱形g++-I/usr/bin/root/include-O2-Wall-fPIC-pthread-m64-I/usr/include/root-c TMLMath.cxxcc1plus:error:/usr/bin/root/include:不是目录make:***[TMLPath.o]错误1错误:包"xps"的编译失败*删除"/home/louis/R/x86_64-pc-linux-gnu-library/3.1/xps"下载的源程序包位于'/tmp/Rtmpc9EO9W/downloaded_packages'警告消息:1:在install.软件包中(pkgs=pkgs,lib=lib,repos=repos,…):包"xps"的安装具有非零退出状态2:安装的目录不可写,无法更新包"maptools">

正如上面的评论中所指出的,ROOT没有正确安装-我刚刚被一个有同样问题的人联系,认为它没有解决(我在这里留下了解决方案的注释,而不是这个问题)。我知道S.O.的政策是包括修复而不是链接,所以我把它粘贴在下面的分区下面。我想,使用v5.34.24而不是生产版的建议应该仍然适用(也许会在某个地方指定,或者有人可以再次联系维护人员)。[我删除了一个不起作用的手动修复部分]


先决条件

(通过Elena Graverini的博客)

先决条件:

sudo apt-get install build-essential git subversion dpkg-dev make g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev

可选(推荐)先决条件:

sudo apt-get install gfortran libssl-dev libpcre3-dev libglu1-mesa-dev libglew-dev libftgl-dev libmysqlclient-dev libfftw3-dev libcfitsio3-dev graphviz-dev libavahi-compat-libdnssd-dev libldap2-dev python-dev libxml2-dev libkrb5-dev libgsl0-dev libqt4-dev

安装ROOT:的字体服务器和字体

sudo apt-get-install xfs-xfsttsudo apt-get install t1-xfree86-nonfree ttf-xfree86-nonfree-ttfree86-nonree-syriac xfonts-75dpi xfonts-100dpi

安装

  • 在root.cern.ch上查找pro(生产)版本号
    • xps的开发人员建议自2015年2月4日起使用5.34.24
  • 在获取source.tar.gz文件ftp://root.cern.ch/root/root_v5.34.24.source.tar.gz
  • 不要像许多可用指南建议的那样安装在/usr/目录中(xps开发人员通过电子邮件提供建议)
gzip-dc root_v5.34.24.source.tar.gz|tar-xf-mv根~cd~/root./configure--全部make-j N

其中N是机器上的CPU核数(cat /proc/cpuinfo | grep 'cpu cores')

  • 对于Ubuntu 14.04运行:sudo mkdir /usr/include/freetype && sudo cp /usr/include/freetype2/freetype.h /usr/include/freetype/freetype.h
    • 如果您正在卸载,请不要忘记将其删除

删除Ubuntu版本的ROOT解决了make中的ld错误

sudo apt-get purge root-system root-system-bin root-system-commonexport ROOTSYS=/home/louis/root

./configure --prefix=/home/louis/运行时,重新运行带配置的make

  • 我认为前缀标志相当于在make之前设置ROOTSYS变量(我使用了多个指南,忘记了设置它,但它仍然有效)
  • 来自源页面的CERN ROOT安装注意到make install是一个"NOOP"。。。但除非在make之后运行,否则它不会安装,所以无论如何都要执行

最后一步是将$ROOTSYS/bin添加到PATH-将source ~/bin/thisroot.sh添加到~/.bashrc(假设你的.bashrc已经在新终端中找到)

  • 对我来说,ROOTSYS现在设置在shell中。xps README建议您设置它,但PATH不是,所以我继续将以下内容添加到我的.bashrc中:
export PATH=$ROOTSYS/bin:$PATHexport LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH

ROOT现在应该可以运行了,并且能够编译xps。。。

  • 由于某些原因,LD_LIBRARY_PATH未设置,但PATH设置。bashrc在其他方面都按预期工作
cd$ROOTSYS/教程`根root[0].x演示。C

如果没有出现错误,则ROOT正在工作。

安装xps

我预计biocLite("xps")会失败,因为二进制文件是用ROOT v.5.34.05创建的……但v5.34.24是维护人员推荐的,所以无论如何都要尝试:

源("http://bioconductor.org/biocLite.R")biocLite("xps")

并且它工作:-)

  • 也可以从源下载并通过运行R CMD INSTALL xps_1.26.0.tar.gz绕过Bioconductor
  • RootTalk讨论论坛(包括ROOT支持论坛):https://root.cern.ch/phpBB3/