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

1 Like

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.

1 Like

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.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.