When I work in root enviroment, I have no problem to run my program:
.x ANLtoroot.cpp(“tape2.data01_01”, “fun.root”)
but when I tried to use it outside root by a shell command:
root -l -q ANLtoroot.cpp(“tape2.data01_01”, “fun.root”)
Then I got error messages:
nsl0:~/ANLtoroot% root -l -q ANLtoroot.cpp(“tape2.data01_01”)
root [0]
Processing ANLtoroot.cpp(“tape2.data01_01”)…
Error: Can not access pointer to function 0x0 from interpreter(1) FILE: LINE:0
Error: Function ANLtoroot(“tape2.data01_01”) is not defined in current scope FILE: LINE:0
Possible candidates are…
filename line:size busy function type and name
ANLtoroot.cpp 64:55 0 public: Int_t ANLtoroot(char* argv1,char* argv2);
Why did it happen? How can I solve the problem? My program is in the same directory where I run the command.
[quote]when I tried to use it outside root by a shell command:
root -l -q ANLtoroot.cpp("tape2.data01_01", "fun.root") [/quote]
then you had omly
and the appropriate error message:
[quote]Processing ANLtoroot.cpp(“tape2.data01_01”).
…
Error: Function ANLtoroot(“tape2.data01_01”) is not defined in current scope FILE: LINE:0[/quote]So use the command you intended and it should work.
sorry, it’s a copy/paste error when I wrote the original post. But it’s not the one which causes my problems.
I thought that comma between the two parameters may need special treatment. So I changed my codes to accept only one parameter, but the problem still happen.