Install ROOT v6.26 from source on Windows 11 does not populate install dir

I’m trying to install ROOT from source on Windows 11 according to the build from source instructions. (mainly because I want to use Python3.10 and the binaries are built for 3.8). The configure and build/install steps seem to run correctly, and I get a “Install succeeded” message, but while the build folder is fully populated, the install directory stays empty.

What I do is:

  1. Open a Developer Command Prompt for VS 2022 (The instructions say “Native Tools” but as far as I can tell that’s what this is)
  2. I have the “root-6.26.10”, “build”, and “install” directories in a folder called ROOT. In the build directory:
cmake -G"Visual Studio 17 2022" -A x64 -Thost=x64 -DCMAKE_INSTALL_PREFIX=C:/Users/Reinier/ROOT/install ../root-6.26.10
cmake --build . --config Release --target install

The first cmake gives me “Configuring done”, “Generating done”, “Build files have been written to C:/Users/Reinier/ROOT/build”
The second cmake runs for a long time and ends with many lines of “Copying xxx”

The install directory remains empty.

I’ve also tried using Visual Studio 2022’s CMake capabilities. In that case I have to set CMake Generator to “Visual Studio 2022 Win64” (otherwise it complains that I’m trying to build x86 in a x64 environment), and Configuration type to Release (I’ve also tried “Debug”)

I use “Project → Configure Cache” and “Build → Install ROOT”. Similarly, I get output suggesting a successful install, but nothing appears in my install directory.

Is there a step I’m missing?


ROOT Version: 6.26.10
Platform: Windows 11 x64
Compiler: Visual Studio 2022 17.4.2
CMake: 3.24.202208181-MSVC_2 that’s packed with VS 2022


Welcome to the ROOT Forum!
That’s weird, last time I tried it was working just fine… The first thing I would verify is that there is no error at all at build time. And I’ll check tomorrow to make sure it still works

OK, I just tried and it works. At the end of the build, you should see something like:

  vecops_rvec.vcxproj -> C:\Users\bellenot\build\x86\release\math\vecops\test\Release\vecops_rvec.exe
  Auto build dll exports
  vectorDict.vcxproj -> C:\Users\bellenot\build\x86\release\bin\libvectorDict.dll
  vlazy.vcxproj -> C:\Users\bellenot\build\x86\release\test\Release\vlazy.exe
  vmatrix.vcxproj -> C:\Users\bellenot\build\x86\release\test\Release\vmatrix.exe
  vvector.vcxproj -> C:\Users\bellenot\build\x86\release\test\Release\vvector.exe
  -- Install configuration: "Release"
  -- Installing: C:/Users/bellenot/install/x86/release/include/nlohmann/json.hpp
  -- Installing: C:/Users/bellenot/install/x86/release/include/nlohmann/json_fwd.hpp
  -- Installing: C:/Users/bellenot/install/x86/release/lib/libGLEW.lib
  -- Up-to-date: C:/Users/bellenot/install/x86/release/include
  -- Installing: C:/Users/bellenot/install/x86/release/include/GL
  -- Installing: C:/Users/bellenot/install/x86/release/include/GL/eglew.h
  -- Installing: C:/Users/bellenot/install/x86/release/include/GL/glew.h
  -- Installing: C:/Users/bellenot/install/x86/release/include/GL/glxew.h
  -- Installing: C:/Users/bellenot/install/x86/release/include/GL/wglew.h
  -- Installing: C:/Users/bellenot/install/x86/release/bin
  -- Installing: C:/Users/bellenot/install/x86/release/bin/cppyy
 [...]
  -- Installing: C:/Users/bellenot/install/x86/release/etc/cling/plugins/lib/cladDifferentiator.lib
  -- Installing: C:/Users/bellenot/install/x86/release/etc/cling/plugins/lib/cladPlugin.lib
  -- Installing: C:/Users/bellenot/install/x86/release/bin/msvcp140.dll
  -- Installing: C:/Users/bellenot/install/x86/release/bin/msvcp140_1.dll
  -- Installing: C:/Users/bellenot/install/x86/release/bin/msvcp140_2.dll
  -- Installing: C:/Users/bellenot/install/x86/release/bin/msvcp140_atomic_wait.dll
  -- Installing: C:/Users/bellenot/install/x86/release/bin/msvcp140_codecvt_ids.dll
  -- Installing: C:/Users/bellenot/install/x86/release/bin/vcruntime140.dll
  -- Installing: C:/Users/bellenot/install/x86/release/bin/concrt140.dll
  -- Up-to-date: C:/Users/bellenot/install/x86/release/bin

when building from a x86 Native Tools Command Prompt for VS 2022 with:

cmake --build . --config Release --target install

Thanks Bertrand,
I’m afraid that, as a new forum user, I can’t upload or link to the full output of the configure and build steps, but the only errors I see are in the build step, in G__core.vcxproj :

  Generating G__Core.cxx, ../bin/libCore.rootmap
  In file included from input_line_3:2:
  In file included from C:/Users/ReiniervanMourik/ROOT/build/include\Rtypes.h:191:
  In file included from C:/Users/ReiniervanMourik/ROOT/build/include/TGenericClassInfo.h:21:
  In file included from C:/Users/ReiniervanMourik/ROOT/build/include/TSchemaHelper.h:17:
  In file included from C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\string:11:
  In file included from C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\xstring:14:
  In file included from C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\xmemory:16:
  In file included from C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\xutility:12:
  In file included from C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\__msvc_iter_core.hpp:11:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\utility(151,9): error G0CCF13F0: expected member name or ';' after declaration specifiers [C:\Users\ReiniervanMourik\ROOT\build\core\G__Core.vcxproj]
          !conjunction_v<_Is_implicitly_default_constructible<_Uty1>, _Is_implicitly_default_constructible<_Uty2>>)
          ^
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\utility(151,9): error G65037BDE: expected ')' [C:\Users\ReiniervanMourik\ROOT\build\core\G__Core.vcxproj]
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\utility:150:23: note: to match this '('
      constexpr explicit(
                        ^
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\utility(190,24): error G0CCF13F0: expected member name or ';' after declaration specifiers [C:\Users\ReiniervanMourik\ROOT\build\core\G__Core.vcxproj]
      constexpr explicit(!conjunction_v<is_convertible<const _Other1&, _Ty1>, is_convertible<const _Other2&, _Ty2>>)
      ~~~~~~~~~~~~~~~~~~ ^
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\utility(190,24): error G65037BDE: expected ')' [C:\Users\ReiniervanMourik\ROOT\build\core\G__Core.vcxproj]
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\utility:190:23: note: to match this '('
      constexpr explicit(!conjunction_v<is_convertible<const _Other1&, _Ty1>, is_convertible<const _Other2&, _Ty2>>)
                        ^
  In file included from input_line_3:2:
  In file included from C:/Users/ReiniervanMourik/ROOT/build/include\Rtypes.h:191:
  In file included from C:/Users/ReiniervanMourik/ROOT/build/include/TGenericClassInfo.h:21:
  In file included from C:/Users/ReiniervanMourik/ROOT/build/include/TSchemaHelper.h:17:
  In file included from C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\string:11:
  In file included from C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\xstring:17:
  In file included from C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\xpolymorphic_allocator.h:11:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\tuple(268,9): error G0CCF13F0: expected member name or ';' after declaration specifiers [C:\Users\ReiniervanMourik\ROOT\build\core\G__Core.vcxproj]
          !conjunction_v<_Is_implicitly_default_constructible<_This2>, _Is_implicitly_default_constructible<_Rest>...>)
          ^
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\tuple(268,9): error G65037BDE: expected ')' [C:\Users\ReiniervanMourik\ROOT\build\core\G__Core.vcxproj]
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\tuple:267:23: note: to match this '('
      constexpr explicit(
                        ^
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\tuple(302,5): error G65F5AB49: non-static data member cannot be constexpr; did you intend to make it const? [C:\Users\ReiniervanMourik\ROOT\build\core\G__Core.vcxproj]
      constexpr explicit(_Tuple_conditional_explicit_v<tuple, const _Other&...>)
      ^
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\tuple(302,24): error G417914D0: member '_Tuple_conditional_explicit_v' declared as a template [C:\Users\ReiniervanMourik\ROOT\build\core\G__Core.vcxproj]
      constexpr explicit(_Tuple_conditional_explicit_v<tuple, const _Other&...>)
                         ^
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\\include\tuple(302,79): error G65037BDE: expected ';' at end of declaration list [C:\Users\ReiniervanMourik\ROOT\build\core\G__Core.vcxproj]
      constexpr explicit(_Tuple_conditional_explicit_v<tuple, const _Other&...>)
                                                                                ^
CUSTOMBUILD : error : Error loading the default rootcling header files. [C:\Users\ReiniervanMourik\ROOT\build\core\G__Core.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(247,5): error MSB8066: Custom build for 'C:\Users\ReiniervanMourik\ROOT\build\CMakeFiles\779ca1cef2a80ed48483b32ef3c08bb3\G__Core.cxx.rule;C:\Users\ReiniervanMourik\ROOT\root-6.26.10\core\CMakeLists.txt' exited with code 1. [C:\Users\ReiniervanMourik\ROOT\build\core\G__Core.vcxproj]

I see that your install is set up for x86, and I’m building for x64, though I get the same result with -A Win32 .
In the meantime I did find the “Native Tools Command Prompt” (previously using the Developer Command Prompt"), but that didn’t seem to make the difference either.

OK, now I see what the issue is.This is an incompatibility between Visual Studio v17.4 and LLVM 9.0. To solve this, you have to either build the master branch (from github, see Building ROOT from source - ROOT) or wait for ROOT v6.28/00, which will come early next year.
And note you can also take a pre-built binary

1 Like

Thanks for diagnosing that. Building from the GitHub master branch solved the LLVM incompatibility. After finding a commit that would build without compilation errors (0fafc31efb), my remaining issue is this error:

  <<< cling interactive line includer >>>:1:10: fatal error: 'Files\Python\Python310\Lib\site-packages\numpy\core\include' file not found
  #include "Files\Python\Python310\Lib\site-packages\numpy\core\include"
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CUSTOMBUILD : error : Parsing Linkdef file etc\dictpch\allLinkDefs.h [C:\Users\ReiniervanMourik\ROOT\build\onepcm.vcxproj]

which presumably comes from the fact that my Python is in “C:\Program Files\Python\Python310” and the parser does not like the space. I suppose my next step would be to reinstall Python in a directory without a space.

Would this - failing to account for a Python directory with a space - be considered a bug in ROOT worthy of an issue in GitHub? Or is that a limitation with the build programs, and dependencies should just be in directories without spaces?

1 Like

Not a ROOT developer, but seems to me it should be considered a bug as “Program Files” is a default install directory in Windows.

1 Like

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