Hello, Francois, I've picked your makefile's and have some questions regarding the problems you mentioned. > If you follow that recipe, I can guarantee that it works. However, there >are things that I have never succeeded to do under WinNT > (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. From your makefile3.mak I concluded it was compiled with the high optimization due your: CXXFLAGS = $(cvarsdll) /O2 /G5 /MD and with "debugger information produced and uploaded into the separate file *.pdb - Program DataBase File due CXXDEBUG = /Zi -Fd$*.pdb In fact this means you did produce very "release" DLL but with the symbolic information that the Studio debugger can use. >I have not found how to change the >makefile in such a way that it produces a .dll file in release mode. You are forced to apply the same compilation option ROOT team uses to compile the ROOT DLL's to be consistent. To produce what MS calls "DEBUG" version one needs the "DEBUG" version of the entire ROOT system. Those are not provided yet. What you do with your makefile are neither "DEBUG" nor "RELEASE" from the MS Developer Studio point of view. It is not "DEBUG" since the "DEBUG" macro symbol is not defined and the high optimization is applied. It entails no "debug" system library is linked against of. It is not RELEASE since the pdb file with symbolic information for the debugger is provided. So your DLL has everything to apply the debugger. However I would advice to remove O2 (high optimization) from the CXXFLAG. You should not try to debug your DLL rather the whole root.exe that your DLL becomes the part of. To do that 1. start root.exe 2. Load your DLL 3. launch studio 4. Select "Debug" -> Attach to process" -> root.exe At this point you may load the source files of your DLL to set break points. The only problem you may meet is lack of the "debugger" information for the "native" ROOT DLL's. In spite of your DLL is supplied with the "debugger information" one may experienced problems without the entire ROOT debug information. Those pdb files are always created during ROOT installation but they are not included into the ROOT distribution so far. May be there is means to supply those files separately (like MS does for system DLLs). Please let me know whether it helps. With my regards, Valery > > 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:28 MET