Root build problem

Hello,

I am trying to build root v6.16.00 from source in a Ubuntu 16.04 docker container (that I need for bunch of other software), linking to conda install of python that (again so other SW can use that)

I am getting this Error:
[ 77%] Building CXX object io/xml/CMakeFiles/XMLIO.dir/src/TKeyXML.cxx.o
In file included from /opt/conda/include/libxml2/libxml/parser.h:810:0,
from /opt/conda/include/libxml2/libxml/globals.h:18,
from /opt/conda/include/libxml2/libxml/threads.h:35,
from /opt/conda/include/libxml2/libxml/xmlmemory.h:218,
from /opt/conda/include/libxml2/libxml/tree.h:1307,
from /workspace/root-6.16.00/io/xmlparser/src/TDOMParser.cxx:28:
/opt/conda/include/libxml2/libxml/encoding.h:31:26: fatal error: unicode/ucnv.h: No such file or directory
compilation terminated.
io/xmlparser/CMakeFiles/XMLParser.dir/build.make:100: recipe for target ‘io/xmlparser/CMakeFiles/XMLParser.dir/src/TDOMParser.cxx.o’ failed
make[2]: *** [io/xmlparser/CMakeFiles/XMLParser.dir/src/TDOMParser.cxx.o] Error 1
CMakeFiles/Makefile2:22828: recipe for target ‘io/xmlparser/CMakeFiles/XMLParser.dir/all’ failed
make[1]: *** [io/xmlparser/CMakeFiles/XMLParser.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs…


_ROOT Version: v6.16.00
_Platform: Ubuntu 16.04
_Compiler:# g++ --version
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609


Any help appreciated…

Does

apt-get install libicu-dev

help?

It seems that conda’s libxml2 headers depend on other headers that are not installed in your Ubuntu docker container neither in conda itself. In particular, as @dwielane pointed out, the unicode/ucnv.h header is part of the libicu-dev package. However, I strongly recommend you not to mix conda software with system software. The libraries of each system are not guaranteed to be compatible, especially C++ libraries compiled with GCC 4.x vs newer GCC versions (probably the case of conda). If possible, just install ROOT from conda as well, by using the conda-forge channel. You can also use one of conda’s own docker container images. There’s even a Dockerfile for building an image with ROOT using conda here that you can use to get started. Cheers,