RE: [ROOT] Several question: globals in aclic, circular dependencies in aclic, default webbrowser

From: Martijn Schellekens (Martijn.Schellekens@iota.u-psud.fr)
Date: Mon Feb 09 2004 - 20:01:49 MET


Thanks for your answers Philippe,
Yet I stil dont understand what I am supposed to do exactly for the first 
point. I tried out what you proposed but I didn't get what I expected.
I enclosed three files with this mail: could you show me what you would do 
exactly to make the script "Test.C" work?

thanks a lot,

Martijn


A 11:29 09/02/2004 -0600, Philippe Canal a écrit :
> > 1. Global variables: critical
>
> > I compiled the code (ie: MUtilities.cxx) using the R__EXTERN macro and
> > compilation is fine
>
>Actually you should use R__EXTERN in an header file (for other compilation
>unit) and 'declare' the global variable without the R__EXTERN in one of the
>cxx file.
>
> > 2. Circular dependencies: important
>
>There is a couple of solutions.
>In the following I assume that you have 4 files: file1.C file1.h, file2.C
>and file2.h
>You need to create a 5th file:
>
>// lib.C
>#include "file1.C"
>#include "file2.C"
>// end of lib.C
>
>and use it:
>    root [] .L lib.C+
>    root [] .L file1.h+
>    root [] .L file2.h+
>
>Or you can use a more elaborate lib.C file:
>
>// lib.C
>#include "file1.C"
>#include "file2.C"
>#ifdef __CINT__
>#pragma link C++ class myclass1+;
>#pragma link C++ class myclass2+;
>// and any other pragma statements that are needed
>#endif
>// end of lib.C
>
>and use it:
>    root [] .L lib.C+
>
>
> > 3. Default Webbrowser: enhancement
>
>We are working toward making the THtml documentation available at run-time.
>
>Cheers
>Philippe
>
>-----Original Message-----
>From: owner-roottalk@pcroot.cern.ch
>[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Martijn Schellekens
>Sent: Monday, February 09, 2004 8:05 AM
>To: roottalk@pcroot.cern.ch
>Subject: [ROOT] Several question: globals in aclic, circular
>dependencies in aclic, default webbrowser
>
>
>Hi Rooters,
>
>I encoutered three problems this weekend, and I desperately need some help.
>
>1. Global variables: critical
>
>I tried to compile several scripts this weekend that used global variables.
>The global variable was for example a TString gWorkspaceDirectory that does
>exist in my
>gROOT according to GetListOfGlobals() (it is defined in my rootalias.C)
>I compiled the code (ie: MUtilities.cxx) using the R__EXTERN macro and
>compilation is fine
>(as a matter of fact i use ACLiC)
>I created the header MUtilities_linkdef.h that is detected and integrated
>by the compilation
>procedure as gDebug=6 tells me
>I wrote #pragma link C++ global gWorkspaceDirectory in my linkdef file.
>Yet once the script is loading it returns it can not identify
>gWorkspaceDirectory.
>What do I wrong or where can I find documentation that explains simply what
>to do?
>
>
>2. Circular dependencies: important
>
>I have two source files that are strongly related. The header files are
>sufficient for
>compiling yet once compiled with ACLiC they can not be loaded as they
>depend on each other
>and they can not be loaded simultaneously. Is there a simple way using
>ACLiC to compiling
>and loading those interdependent source files?
>
>
>3. Default Webbrowser: enhancement
>
>Documentation related to my userinterface is in html (by the way thanks for
>the excellent
>THtml class) and it would be nice for the users to simply press on a button
>so it opens. Is
>there a methos within root that could return the default internet browser
>(on both linux,
>windows and macOS)?
>
>
>I thanks in advance anybody that could help me on any of those questions.
>
>Martijn Schellekens







This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET