Dear Mr Reiner Geyer and dear rooters,
I am not sure that I had the same kind of problem as Mr Reiner, but
here is my experience concerning Root and WinNT : I have never compiled ROOT
itself on WinNT. I have compiled and linked a program based on ROOT, in
debug mode and in release mode, and I have also compiled and linked .dll
files, all this using Visual C++.
(1) - I give below the file "makefile1.mak", an example of a makefile that
I use to compile and link a program named "Litrani" in debug mode. (Please
remove the "1" in "makefile1.mak" before use).
(2) - I give below the file "makefile2.mak", an example of a makefile that
I use to compile and link a program named "Litrani" in release mode. (Please
remove the "2" in "makefile2.mak" before use).
(3) - I give below the file "makefile3.mak", an example of a makefile that
I use to compile and link a .dll file named "mlpfit.dll" in debug mode.
(Please remove the "3" in "makefile3.mak" before use).
Notice that before trying to build programs or dll under Visual C++
starting from makefiles, you have to indicate to Visual C++ :
(1) - where are your .h and .cpp files using :
"Project" -> "add to project"
(2) - where are the root libraries, using :
"Tools"->"Options" -> "Library files"
(3) - where are the root include files using :
"Tools" -> "Options" -> "Include files"
(4) - it is also necessary to change the default name that Visual C++ has
assigned to your program ( which is "makefile.exe" ) by the name of your
program in the makefile ( for instance "litrani.exe"), using :
"Project" -> "Setting" ->"General" -> "Output file name" ->
litrani.exe
"Project" -> "Setting" -> "Debug" -> "Executable for debug
session" -> litrani.exe
If you follow that recipe, I can guarantee that it works. However, there
are things that I have never succeeded to do under WinNT, although I had the
help of a specialist of NT as clever as Valery Fine :
(1) - I have never succeeded in debugging a .dll file. I do not know how
to indicate to Visual C++ that I want to debug a .dll file.
(2) - I do not know how to produce a .dll file in "release" mode. If you
use my file "makefile3.mak" to produce a .dll file, you will notice that it
produces a .dll file in debug mode. I have not found how to change the
makefile in such a way that it produces a .dll file in release mode.
This leads me to ask for a specific documentation on how to use ROOT on
NT. A good start for such a documentation is the web site of Andrew Haas :
http://glast.phys.washington.edu/~haas/home.html
but many things are missing in this site, for instance the use of Visual
C++ starting from makefiles.
<<makefile1.mak>> <<makefile2.mak>> <<makefile3.mak>>
Hi Reiner,
I am forwarding your message to Francois-Xavier Gentit who had
recently a similar request/problem and finally solved it.
Xavier, in case you answer this mail, could you provide
a verbose answer such that we can post this information
somewhere on the Root pages.
Thanks in advance.
Rene Brun
On Fri, 9 Jun 2000 sciencesoft-analyst@listbox.cern.ch wrote:
>
>
> Message :
>
> I would appreciate your advice in understanding and eventually
> resolving the query referred to below. My personal remarks are:
>
> Can you please answer?
> Thanks you, Nicole.
>
> Best regards, Nicole Cremel
> Scientific Software Analyst / IT User Support
> ---------------------------------------------------------------------
> Query.........: http://cern.ch/consult/problem/10892
> User Email....: Reiner.Geyer@cern.ch
> User Subject..: root and WINNT
>
> User Statement:
>
>
> From: Reiner.Geyer@cern.ch
> To: helpdesk@cern.ch
> Date: Fri, 09 Jun 2000 12:14:07 +0200
> Subject: root and WINNT
>
> -----------------------------------------------------
> Problems with linking root under WINNT.
> I try to compile the example programs under winnt.
> I call the make file with nmake (but I also tried it with the
Developer
> Studio). In both cases i get a similar error message during linking:
>
>
>
> >>>>>>>>>>>>>>>
> C:\Home\cern\reinerg\root\test>nmake
>
> Microsoft (R) Program Maintenance Utility Version 1.62.7022
> Copyright (C) Microsoft Corp 1988-1997. All rights reserved.
>
> link /NODEFAULTLIB /INCREMENTAL:NO /RELEASE /NOLOGO
> -entry:_DllMainCRTS
> tartup@12 -dll Hello.obj HelloDict.obj
> C:\home\cern\reinerg\root/lib/*.lib msvcr
> t.lib oldnames.lib kernel32.lib ws2_32.lib mswsock.lib advapi32.lib
> user32.lib
> gdi32.lib comdlg32.lib winspool.lib MSVCIRT.LIB /out:Hello.dll
> C:\home\cern\reinerg\root/lib/Root_Cint.lib : fatal error LNK1106:
> invalid file
> or disk full: cannot seek to 0x39301e6c
> NMAKE : fatal error U1077: 'link' : return code '0xc'
> Stop.
>
> Can you help?
> Than you very much!
>
> Reiner Geyer
> Tel. 74546
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:27 MET