Please read tips for efficient and successful posting and posting code
Please fill also the fields below. Note that root -b -q
will tell you this info, and starting from 6.28/06 upwards, you can call .forum bug
from the ROOT prompt to pre-populate a topic.
_ROOT Version:6.30.04
_Platform:Windows 11
_Compiler:Visual C++
Dear Rooters,
my motivation compiling ROOT was obviously to cisrcumvent the stringent requirement for using the exact toolset that was used to compile the distibuted ROOT binaries.
At some point I decided to bite the bullet and attempt to compile the latest version of root using the provided instructions on the main website.
My objective was to build a basic root before attempting to add any optional components.
So I installed the latest version of git and downloaded the latest version of Python (just in case).
I followed the instructions and asmazingly after about an hour the root build finished pretty much successfully with only one error repeated 5 times, that it could not find some iconvXXX.h. I was hoping this wouldn’t matter as over 100 libraries were built and all the bibaries seemed to be there. root 6 commad prompt starts successfully, so in principle the tructure was largely there.
So I tried compiling a simple code using the VS c++ interface. I had a recomendation at a previous time point to use cmake rather than the VS gui. I thought since I compiled root from scratch to re-attempt to use my familiar interface before going to cmake.
In any case the problem I run to doesn’t seem related that aspect.
My code went through the compilation step successfully but then got stuck at the linker.
The linker kept complaining that it cannot access input file cppyy3_8.lib. This file was not in the dependencies list I had pasted in the gui.
It was also not in the lib folder of root.
Then I searched my compute and found copy in a precompiled version of root6. I knew this would likely lead to new problems, but I thought I’d try to copy over that lib file to the lib directory of the root version i had compiled. Then the compiled asked for another lib file that was not in the lib directory. So I kept pasting in the files from the other root installation, just to see where this is going. In the end I had to paste in around 5 missing lib files before the linker started complaing about unresolved externals, which I assume had to do with the pasted lib files that were from another version or root.
The question is, why are there missing library files from the root version I compiled, despite there not being any errors related to those libraries (or so I thought)?
And secondly why is the linker trying to pull in libraries related to Python?