Hi Mike, I am always using just the plain command mode MSVC++ functions to create my libs. This ensures that it always works on ALL windows versions and even DOS systems. Attached you find the 3 files mklibs.txt ==> Script to create private DLLs to be loaded with root Note that the actual name should be mklibs.bat, but in order to prevent certain mail systems to refuse .bat files in view of possible viruses I have renamed it to .txt RALICEHeaders.h ==> File containing the headers of all the private classes RALICELinkDef.h ==> The required linkdefs for rootcint. If you want you can try this to create your own dll's. Cheers, Nick. -- Dr. Nick van Eijndhoven mailto:nick@phys.uu.nl http://www.phys.uu.nl/~nick -------------------------------------------------------------------------- Org.: Utrecht University/Nikhef, Department of Subatomic Physics Address: Princetonplein 5, NL-3584 CC Utrecht, The Netherlands Phone: +31-30-2532331(direct) +31-30-2531492(secr.) Fax: +31-30-2518689 NIKHEF: +31-20-5922178(direct) +31-20-5922000(secr.) Fax: +31-20-5925155 CERN: +41-22-7679751(direct) +41-22-7675857(secr.) Fax: +41-22-7679480 Offices: Buys Ballot lab. 710 (Utrecht) N241 (Nikhef) B23 1-020 (CERN) -------------------------------------------------------------------------- Mike Miller wrote: > > Hi all, I have been using root under MS Visual Studio 6.0. To this point > I have only used standard root classes and user defined classes. But, now > I would like to make it so that my user defined classes can be stored in a > TTree, so I imagine that I need to run rootcint to generate a dll for a > "cint"'ized version of my class (i.e., automatically generated > streamers/dictionary). I have no idea how to do this, and I wondered if > anyone had an example? Thanks, Mike > > Michael L. Miller (Yale Physics) michael.miller@yale.edu > > Seattle: 206.543.2908 EPE group, 2nd floor physics. > BNL: 631.344.8342 Building 118 Yale Software > Yale: 203.432.6615 Room 301 WNSL @echo off rem **************************************************************************** rem * Script to create an MSVC++ LIB and relocatable DLL from *.cxx files rem * rem * Usage : rem * ------- rem * mklibs export : ROOT loadable DLL and export LIB are created rem * mklibs full : ROOT loadable DLL and full LIB version are created rem * rem * Notes : rem * ------- rem * 1) "mklibs export" is the default, enabling ROOT loadable library creation rem * via 'double clicking'. rem * rem * 2) Providing unsupported options results in displaying the help info. rem * rem * This script creates ralice.lib and ralice.dll from all .h and .cxx files rem * in the current directory. rem * rem * In view of the ROOTCINT processing, the following two standard files rem * are always required : rem * rem * RALICEHeaders.h : containing an include of all .h files rem * RALICELinkDef.h : containing the #pragma's to define all classes rem * rem * --- NvE 04-apr-2000 UU-SAP Utrecht rem **************************************************************************** echo . echo === Automatic ROOT library production of files ralice.lib and ralice.dll === echo . rem --- The option strings for MSVC++ DLL compilation and linking --- set mscomp=/nologo /c /TP /Za /MD /I%ROOTSYS%\include set msdll=/nologo /TP /Za /MD /LD /GD /I%ROOTSYS%\include set mslink=/ENTRY:_DllMainCRTStartup@12 %ROOTSYS%\lib\*.lib if "%1" == "" goto export if "%1" == "export" goto export if "%1" == "full" goto full rem --- Displaying of the help info --- echo **************************************************************************** echo * Script to create an MSVC++ LIB and relocatable DLL from *.cxx files echo * echo * Usage : echo * ------- echo * mklibs export : ROOT loadable DLL and export LIB are created echo * mklibs full : ROOT loadable DLL and full LIB version are created echo * echo * Notes : echo * ------- echo * 1) "mklibs export" is the default, enabling ROOT loadable library creation echo * via 'double clicking'. echo * 2) Providing unsupported options results in displaying the help info. echo * echo * This script creates ralice.lib and ralice.dll from all .h and .cxx files echo * in the current directory. echo * echo * In view of the ROOTCINT processing, the following two standard files echo * are always required : echo * echo * RALICEHeaders.h : containing an include of all .h files echo * RALICELinkDef.h : containing the #pragma's to define all classes echo **************************************************************************** goto end :export echo *** Creation of ROOT loadable export libraries echo. rem --- Set the RALICE source directory as working directory cd .. rem --- Creation of ROOT dictionary --- rootcint zzzralicedict.cxx -c RALICEHeaders.h RALICELinkDef.h rem --- Compilation step --- cl %mscomp% *.cxx rem --- Creation of the export LIB --- bindexplib ralice *.obj > ralice.def lib /nologo /machine:IX86 *.obj /def:ralice.def /out:ralice.lib rem --- Creation of the DLL --- link /nologo /machine:IX86 /DLL *.obj ralice.exp %mslink% /OUT:ralice.dll rem --- Move the created libs to the SCRIPTS subdirectory move ralice.lib .\scripts move ralice.dll .\scripts rem --- Delete all intermediate files --- del .def del ralice.def del ralice.exp del zzzralicedict.h del zzzralicedict.cxx del *.obj echo. echo *** mklibs done. goto end :full echo *** Creation of ROOT loadable full version libraries echo. rem --- Set the RALICE source directory as working directory cd .. rem --- Creation of ROOT dictionary --- rootcint zzzralicedict.cxx -c RALICEHeaders.h RALICELinkDef.h rem --- Creation of the DLL --- cl %msdll% *.cxx /link %mslink% /OUT:ralice.dll rem --- Creation of the full version LIB --- lib /nologo /machine:IX86 *.obj /out:ralice.lib rem --- Move the created libs to the SCRIPTS subdirectory move ralice.lib .\scripts move ralice.dll .\scripts rem --- Delete all intermediate files --- del .def del zzzralicedict.h del zzzralicedict.cxx del *.obj echo. echo *** mklibs done. goto end :end rem --- End of script ---
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:58 MET