Looks like I have to abandon Root on Windows


ROOT Version: root_v6.14.06
Platform: Windows 10
Compiler: VS 2017


I (finally!) got my program to build on Mac, Linux, and Windows. It runs on Mac and Linux, where I have filtered out the “Strange error messages” (different forum thread) from the user. I have to include the entire root directory structure inside my distribution.

The problem is Windows. I have put $APPDIR/root/bin into PATH so the Root DLLs are found in the correct relationship to the rest of the Root installation. The program passes all 113 regression tests on my build machine, which of course has the Windows SDK installed.

When I install it on a bare Windows 10 install, loading the Root DLLs hangs forever with these error messages (minus the ones already filtered out):

RegOpenKeyEx(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows$VERSION\InstallationFolder): returned 2: The system cannot find the file specified.
RegOpenKeyEx(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots\KitsRoot10): returned 2: The system cannot find the file specified.

This is clearly Root looking for the SDK. Note I cannot expect my users to install the SDK. On Mac and Linux, Root looks for the SDK, fails to find it, emits a bunch of error messages, and then correctly reads and writes what I need (TFile, TDirectory, and TNtuple). On Windows, Root hangs forever during DLL loading.

Is there any way to fix this?

While I could put stuff into the distribution to fake something out, I cannot put fake values into global registry entries – that would compromise the integrity of the system.

Those are only warnings, and should not prevent ROOT from running… And they should be fixed in the next versions of ROOT. Does that mean that you cannot start ROOT from the command prompt at all? Here, I mean install ROOT, call root/bin/thisroot.bat, and then root.exe.
Note also that ROOT 6 on Windows is in a preview state and is not yet fully working

OK, I just tried, and you’re right, it doesn’t work…

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