RE: [ROOT] executable

From: Philippe Canal (pcanal@fnal.gov)
Date: Fri Feb 15 2002 - 21:37:59 MET


Hi Ricardo,

It is hard to tell what you exact problem is without some specifics.

With ROOT 3.02.07, you first example compile and run if you compiled
with something like 

  KCC --no_exceptions d01.C -I$ROOTSYS/include `root-config --libs`

if you are on a CDF machine or 

  KCC --thread_safe d01.C -I$ROOTSYS/include `root-config --libs`

if you are on a D0 machine.  In both case, it is also better to
add `root-config --cflags`

Your second program has a C++ syntax error.  When compiling it
you get:

bash$ KCC --no_exceptions -c d01.C -I$ROOTSYS/include
"d01.C", line 11: error: no instance of constructor
          "TApplication::TApplication" matches the argument list
            argument types are: (char [4], char [16])
     TApplication app("App","My Root Program");

Which tells your that the TApplication class as no constructor
that take 2 strings as parameters.  By looking at 
$ROOTSYS/include/TApplication.h or on the web in the Reference guide, 
you will see that the only constructor is:

   TApplication(const char *appClassName, int *argc, char **argv,
                void *options = 0, int numOptions = 0);

Hence the correct syntax is:

int main(int argc, char **argv) {
   TApplication app("App", &argc, argv);
   ....

Cheers,
Philippe.

PS.  In the next release of ROOT, 
	KCC `root-config --cflags` d01.C `root-config --libs`
will be sufficient in both case.

-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Ricardo Eusebi
Sent: Friday, February 15, 2002 1:52 PM
To: roottalk@pcroot.cern.ch
Subject: [ROOT] executable



How can I make an executable out of a simple root script like the following
( linux OS)

#include "TCanvas.h"
int main(){

   TCanvas *can = new TCanvas("a","B",300,400);

return 0;
}

I tried everthing I saw on the web.
I also tried the following :


////////////////////////////////////////////////////////////////
//For ROOT//////////////////////////////////////////////////////
#include "TROOT.h"
#include "TApplication.h"
TROOT root("rint", "The ROOT Interactive Interface");
////////////////////////////////////////////////////////////////

int main() {
   TApplication app("App","My Root Program");

   return 0;
}

and didn't compile with KCC nor with root> .L <filename>.C++

In advance, Thank you !!

Ricardo

-- 
--------------------------------------------------------------------
Ricardo Eusebi
High Energy Physics
University of Rochester
Fermilab,  (630) 840 8622
--------------------------------------------------------------------



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:41 MET