Thanks for the answer,
but at that moment, this is not clear for me what it means?
Is it for Windows?
Is it some command that i have to write somewhere?
Thanks, but sorry i was not clear. This is not on linux but on windows. as i said i am familiar with linux but totally new with windows that seems different, so i am just asking for simple but precise helps, if possible, on “how to compile a root project with Makefile on windows 10”. A kind of step by step help, just for starting. Thanks.
Thanks, so i try to do this:
cd Downloads
mkdir builddir
cd builddir
cmake ../root
At that point i get the error message: “directory root does not exists”.
Indeed there is no directory called root it is called root-master (may be this is a typo in INSTALL), so i do instead:
cmake ../root-master
After few lines there is the following error:
So following this post i do instead:
cmake ../root-master -Dclad=OFF
and everything seems to be done correctly. Is it a typo in INSTALL?
Then i do:
cmake --build .
It works. The next step is execute
bin/thisroot.bat
as explained here
(but not said in the INSTALL file)
The next step is: 4) try running root:
root
But there is no such binary file??
So i skip this, and try to compile the test programs:
I open a terminal called: “developer command prompt VS 2019”, and in the directory of
test
, i write:nmake
It gives this error:
For the moment, i find very difficult to use root on windows 10. But i have still hopes… If someone can help me please?
In the “command prompt”, you probably need:
cd \...\test
..\bin\thisroot.bat
nmake /f Makefile.win32
The command nmake /f Makefile.win32
gives:
Makefile.win32(66) : fatal error U1052: fichier 'win32.mak' introuvable
Stop.
I found in this post that win32.mak is provided by Windows SDK. So i have installed windows SDK and re-installed Visual Studio so that he may find win32.mak. But still i have the same error. Somebody has an idea?
PS: My computer is a recent XPS13 (64 bits), so i am surprised to need win32. I am using Windows 10 on a virtual machine under ubuntu 20.04: virt-manager KVM as explained here. My objective is to export some c++ project that uses root from linux, to the Windows 10 platform.
I don’t use Windows myself (all I remember was once valid for ROOT 5, which was indeed a 32-bit x86 application).
You can use CMake
, or you can compile in the command prompt, for example:
cl -nologo -O2 -MD -GR -EHsc -I%ROOTSYS%\include mysource.cxx /link -LIBPATH:%ROOTSYS%\lib libCore.lib libGui.lib libGpad.lib libHist.lib libTree.lib libGraf.lib /out:myapplication.exe
or change the following lines in Makefile.win32
:
!if ([nmake /? 2>&1 | findstr /c:"Version 11\." > nul ] == 0) || \
([nmake /? 2>&1 | findstr /c:"Version 12\." > nul ] == 0)
APPVER = 5.01
cc = cl
link = link
implib = lib
lflags = $(lflags) /INCREMENTAL:NO /NOLOGO
DLLENTRY = @12
conlflags = $(lflags) -subsystem:console
guilflags = $(lflags) -subsystem:windows
dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
!else
!include <win32.mak>
!endif
as:
APPVER = 5.01
cc = cl
link = link
implib = lib
lflags = $(lflags) /INCREMENTAL:NO /NOLOGO
DLLENTRY = @12
conlflags = $(lflags) -subsystem:console
guilflags = $(lflags) -subsystem:windows
dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll
@bellenot Can you fix all Makefile.win32
files (and the Makefile.arch
, if needed) in the official source code repository?
Actually, they should be “.win64
” now, or may better “.mvc
”. Keeping “.win32
” may be misleading.
Update: The 23rd post here says that ROOT 6 is still a 32-bit x86 application (even on 64-bit Windows), so “.win32
” is “mandatory”.
Will do, once back at work (next month). And win32.mak
is obsolete
Hello, thanks for the information.
So i tried to compile hsimple.cxx or guitest.cxx like this:
The error is a missing librairy. So i checked which librairies are in directory lib:
So it seems that many lib are missing here? Do you have an idea?
How did you install ROOT?
What i did from the begining:
- On ubuntu 20.04: i installed Windows 10 Pro on a virtual machine virt-manager KVM as explained here
- On this windows 10 virtual machine, i installed Visual Studio community and CMake and Windows SDK and GitHub.
- From github, i downloaded root
- I followed more or less the file INSTALL and did in the directory
root-master
:
mkdir build2
cd build2
cmake ../root-master -Dclad=OFF
cmake --build .
Then the previous message shows what i did in the directory test
.
Why -Dclad=OFF
? Here is the correct configuration:
cmake -G"Visual Studio 16 2019" -A Win32 -Thost=x64 -DCMAKE_VERBOSE_MAKEFILE=ON ../root-master
This is not enough. On Windows you must specify the configuration (e.g. Debug
or Release
):
cmake --build . --config Release
And make sure you run in a x86 Native Tools Command Prompt for VS 2019
.
Please try again and check if there is any error message at the end of the build
@bellenot Why are these MANDATORY additional flags missing in the official instructions on the “Installing ROOT” and “Building ROOT from source” web pages?
Well, you’re right, the Windows specific part is missing…
There is one thing that I don’t understand now. Is ROOT 6 built with MVC on Windows still only a 32-bit x86 application, or can it be built as a proper 64-bit x86_64 one?
BTW. The "-Dclad=OFF
is a result of an error shown in the 7th post here. Maybe you know how to fix it.
The x86_64
port is ongoing (finally), but since all possible parts of ROOT have to be modified and fundamental changes are needed, it will take some time…
I’ll take a look next month (I’m on sick leave right now)