Problems while install root612

Dear ROOT experts,

I need to compile ROOT6.12.06 with GCC 4.8.5 on ubuntu 20.04 and cannot make it work.

cmake command: cmake -DCMAKE_INSTALL_PREFIX=buildfile -Dmysql=OFF sourcefile

wrong info:

[ 92%] Linking CXX shared library ../../lib/libRDAVIX.so
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFile_http_authn_cert_X509(void*, Davix::SessionInfo const&, Davix::X509Credential*, Davix::DavixError**)':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:225: undefined reference to `Davix::X509Credential::loadFromFilePEM(std::string const&, std::string const&, std::string const&, Davix::DavixError**)'
/usr/bin/ld: /root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:222: undefined reference to `Davix::DavixError::setupError(Davix::DavixError**, std::string const&, Davix::StatusCode::Code, std::string const&)'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFileInternal::Close()':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:295: undefined reference to `Davix::DavixError::getErrMsg() const'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFileInternal::enableGridMode()':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:312: undefined reference to `Davix::RequestParams::addCertificateAuthorityPath(std::string const&)'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFileInternal::setAwsRegion(std::string const&)':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:332: undefined reference to `Davix::RequestParams::setAwsRegion(std::string const&)'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFileInternal::setAwsToken(std::string const&)':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:346: undefined reference to `Davix::RequestParams::setAwsToken(std::string const&)'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFileInternal::setS3Auth(std::string const&, std::string const&, std::string const&, std::string const&)':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:391: undefined reference to `Davix::RequestParams::setAwsAuthorizationKeys(std::string const&, std::string const&)'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFileInternal::parseConfig()':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:410: undefined reference to `Davix::RequestParams::addCertificateAuthorityPath(std::string const&)'
/usr/bin/ld: /root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:424: undefined reference to `Davix::RequestParams::setAwsAuthorizationKeys(std::string const&, std::string const&)'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFileInternal::DavixStat(char const*, stat*)':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:520: undefined reference to `Davix::DavPosix::stat(Davix::RequestParams const*, std::string const&, stat*, Davix::DavixError**)'
/usr/bin/ld: /root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:523: undefined reference to `Davix::DavixError::getErrMsg() const'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFile::DavixReadBuffer(Davix_fd*, char*, int)':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:794: undefined reference to `Davix::DavixError::getErrMsg() const'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFile::DavixWriteBuffer(Davix_fd*, char const*, int)':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:814: undefined reference to `Davix::DavixError::getErrMsg() const'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFile::DavixPReadBuffer(Davix_fd*, char*, long long, int)':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:834: undefined reference to `Davix::DavixError::getErrMsg() const'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFile::DavixReadBuffers(Davix_fd*, char*, long long*, int*, int)':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:864: undefined reference to `Davix::DavixError::getErrMsg() const'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFileInternal::init()':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:507: undefined reference to `Davix::RequestParams::setUserAgent(std::string const&)'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `TDavixFileInternal::Open()':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:255: undefined reference to `Davix::DavPosix::open(Davix::RequestParams const*, std::string const&, int, Davix::DavixError**)'
/usr/bin/ld: /root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:264: undefined reference to `Davix::Uri::Uri(std::string const&)'
/usr/bin/ld: /root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:267: undefined reference to `Davix::Uri::getString() const'
/usr/bin/ld: /root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:277: undefined reference to `Davix::DavixError::getErrMsg() const'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixFile.cxx.o: in function `_GLOBAL__sub_I_TDavixFile.cxx':
/root/software/root/root-6.12.06/net/davix/src/TDavixFile.cxx:59: undefined reference to `Davix::version()'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixSystem.cxx.o: in function `TDavixSystem::GetDirEntry(void*)':
/root/software/root/root-6.12.06/net/davix/src/TDavixSystem.cxx:110: undefined reference to `Davix::DavixError::getErrMsg() const'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixSystem.cxx.o: in function `TDavixSystem::Unlink(char const*)':
/root/software/root/root-6.12.06/net/davix/src/TDavixSystem.cxx:215: undefined reference to `Davix::DavPosix::unlink(Davix::RequestParams const*, std::string const&, Davix::DavixError**)'
/usr/bin/ld: /root/software/root/root-6.12.06/net/davix/src/TDavixSystem.cxx:217: undefined reference to `Davix::DavixError::getErrMsg() const'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixSystem.cxx.o: in function `TDavixSystem::MakeDirectory(char const*)':
/root/software/root/root-6.12.06/net/davix/src/TDavixSystem.cxx:201: undefined reference to `Davix::DavPosix::mkdir(Davix::RequestParams const*, std::string const&, unsigned int, Davix::DavixError**)'
/usr/bin/ld: /root/software/root/root-6.12.06/net/davix/src/TDavixSystem.cxx:203: undefined reference to `Davix::DavixError::getErrMsg() const'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixSystem.cxx.o: in function `TDavixSystem::OpenDirectory(char const*)':
/root/software/root/root-6.12.06/net/davix/src/TDavixSystem.cxx:122: undefined reference to `Davix::DavPosix::opendir(Davix::RequestParams const*, std::string const&, Davix::DavixError**)'
/usr/bin/ld: /root/software/root/root-6.12.06/net/davix/src/TDavixSystem.cxx:124: undefined reference to `Davix::DavixError::getErrMsg() const'
/usr/bin/ld: CMakeFiles/RDAVIX.dir/src/TDavixSystem.cxx.o: in function `TDavixSystem::Locate(char const*, TString&)':
/root/software/root/root-6.12.06/net/davix/src/TDavixSystem.cxx:175: undefined reference to `Davix::Uri::Uri(std::string const&)'
/usr/bin/ld: /root/software/root/root-6.12.06/net/davix/src/TDavixSystem.cxx:185: undefined reference to `Davix::Uri::getString() const'
/usr/bin/ld: /root/software/root/root-6.12.06/net/davix/src/TDavixSystem.cxx:180: undefined reference to `Davix::DavixError::getErrMsg() const'
collect2: error: ld returned 1 exit status
make[2]: *** [net/davix/CMakeFiles/RDAVIX.dir/build.make:173: lib/libRDAVIX.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:22053: net/davix/CMakeFiles/RDAVIX.dir/all] Error 2
make: *** [Makefile:150: all] Error 2

Please help me out with this problem.
Thank You

_ROOT Version:root6.12.06
_Platform:ubuntu 20.04
_Compiler:gcc 4.8.5


Welcome to the ROOT Forum!
ROOT 6.12.06 is quite old. Are you using builtin_davix, or an external Davix? You can either try builtin_davix(if it’s not already the case) or disable it if you don’t need it, otherwise I’ll check if something was fixed in more recent versions

Thank you for your help. Due to some requirements, I needed to use version 6.12. Following your advice, I added the -Ddavix=OFF flag during cmake, and it worked successfully. However, I couldn’t find the build options on the current “build_from_source” webpage, though I remember they used to be there. Anyway, this has solved my current issue, and I really appreciate it.

Hi, @bellenot. I’m facing another issue now. When I generate a dynamic library using the makefile, compilation passes without errors. However, when I try to load this dynamic library in ROOT, I encounter the following error: cling::DynamicLibraryManager::loadLibrary(): *.so: undefined symbol: _ZTV8TVector3. I’ve looked into some information, and it seems this could be an issue specific to the Ubuntu system. Unfortunately, I’m unable to switch to a CentOS system at the moment. I’m looking forward to your response.

You have to link against libPhysics (see at the bottom of the ROOT: TVector3 Class Reference)

Thank you for your reply. The situation is that I have already link against libPhysics (using root-config --cflags --libs whick contains libPhysics) and compiled sucessfully, and generated a libxx.so file. However, when I enter the ROOT interactive session and run the command gSystem->Load("libxx.so"), it gives this error: cling::DynamicLibraryManager::loadLibrary(): libxx.so: undefined symbol: _ZTV8TVector3.

OK. that’s weird. And if you load libPhysics first (gSystem->Load("libPhysics"))?

Nice. It works. Thank you very much.