Error in compilation process.
Valeev Azamat wrote on May 12, 2007
Hi all.
I try to compile simple
program from sppguide.ps
(author Rob Seaman).
task hello = t_hello_world
procedure t_hello_world()
begin
call printf("hello world\n)
end
In compilation process I see
message:
cl> xc hello.x
hello.x:
Fatal compiler error: Cannot execute xpp.e
Fatal compiler error: Cannot execute rpp.e
/usr/bin/ld: cannot find -lcompat
collect2: ld returned 1 exit status
I find files rpp.e and xpp.e in directory
/Local/Iraf/iraf/unix/bin.redhat/.
libcompat.a library are also there.
What may I do for fix this error?
Azamat
I try to compile simple
program from sppguide.ps
(author Rob Seaman).
task hello = t_hello_world
procedure t_hello_world()
begin
call printf("hello world\n)
end
In compilation process I see
message:
cl> xc hello.x
hello.x:
Fatal compiler error: Cannot execute xpp.e
Fatal compiler error: Cannot execute rpp.e
/usr/bin/ld: cannot find -lcompat
collect2: ld returned 1 exit status
I find files rpp.e and xpp.e in directory
/Local/Iraf/iraf/unix/bin.redhat/.
libcompat.a library are also there.
What may I do for fix this error?
Azamat
Mike Fitzpatrick wrote on May 12, 2007
Compilation requires that you define a $iraf and $IRAFARCH environment variable (in your .cshrc or .bashrc file) so the system will know where to find IRAF and your binary architecture. For you these values should probably iraf=/Local/Iraf/iraf/ (note the trailing '/' is required, the capitals are from your post) and IRAFARCH=redhat (for Fedora).
If it still doesn't work, check that the xpp.e and rpp.e will actually run, e.g.
Note any system errors (e.g. missing libs, bus error etc), otherwise you wouldn't normally see anything output. Also note that a $host variable defined for other purposes may interfere with this working. Post back if you still have problems.
Cheers,
-Mike
If it still doesn't work, check that the xpp.e and rpp.e will actually run, e.g.
% cd $iraf/unix/bin.redhat
% ./xpp.e
Note any system errors (e.g. missing libs, bus error etc), otherwise you wouldn't normally see anything output. Also note that a $host variable defined for other purposes may interfere with this working. Post back if you still have problems.
Cheers,
-Mike
Valeev Azamat wrote on May 12, 2007
When I make (cd $iraf/unix/bin.redhat && ./xpp.e) its work
Now I set-up all
variables in cl.csh script(which I run)
(I copy some files from/Local/Iraf/iraf/ to ~/IRAF/
to have access to them)
setenv iraf "/Local/Iraf/iraf/"
setenv IRAFARCH "redhat"
setenv host ~/IRAF/unix/
setenv hlib ~/IRAF/unix/hlib/
setenv hbin ~/IRAF/unix/bin.redhat/
setenv arch ".redhat"
setenv IRAFBIN ~/IRAF/bin.redhat/
set MACH = $IRAFARCH
set file = ~/IRAF/bin.redhat/cl.e
But the problem not solved.
May you say which variables used? And how
differ iraf$unix/bin.redhat and iraf$bin.redhat.
directory. I think that iraf could not find
files in iraf$unix/bin.redhat.
I think so while I have problem with
printing too [Fatal (sgidispatch): unable to access SGI translator `sgi2uapl.e' or so]. I find file sgi2uapl.e in iraf$unix/bin.redhat and try recompile it and sgidispatch.e.
I try link all files from iraf$unix/bin.redhat to iraf$bin.redhat/.
But problem is not solved.
Have you any recipes or question? I do not know
how make it, but I should try any tomorrow. Thanks for help.
Azamat
Now I set-up all
variables in cl.csh script(which I run)
(I copy some files from/Local/Iraf/iraf/ to ~/IRAF/
to have access to them)
setenv iraf "/Local/Iraf/iraf/"
setenv IRAFARCH "redhat"
setenv host ~/IRAF/unix/
setenv hlib ~/IRAF/unix/hlib/
setenv hbin ~/IRAF/unix/bin.redhat/
setenv arch ".redhat"
setenv IRAFBIN ~/IRAF/bin.redhat/
set MACH = $IRAFARCH
set file = ~/IRAF/bin.redhat/cl.e
But the problem not solved.
May you say which variables used? And how
differ iraf$unix/bin.redhat and iraf$bin.redhat.
directory. I think that iraf could not find
files in iraf$unix/bin.redhat.
I think so while I have problem with
printing too [Fatal (sgidispatch): unable to access SGI translator `sgi2uapl.e' or so]. I find file sgi2uapl.e in iraf$unix/bin.redhat and try recompile it and sgidispatch.e.
I try link all files from iraf$unix/bin.redhat to iraf$bin.redhat/.
But problem is not solved.
Have you any recipes or question? I do not know
how make it, but I should try any tomorrow. Thanks for help.
Azamat
Mike Fitzpatrick wrote on May 12, 2007
Now I set-up all
variables in cl.csh script(which I run)
(I copy some files from/Local/Iraf/iraf/ to ~/IRAF/
to have access to them)
setenv iraf "/Local/Iraf/iraf/"
setenv IRAFARCH "redhat"
setenv host ~/IRAF/unix/
setenv hlib ~/IRAF/unix/hlib/
setenv hbin ~/IRAF/unix/bin.redhat/
setenv arch ".redhat"
setenv IRAFBIN ~/IRAF/bin.redhat/
set MACH = $IRAFARCH
set file = ~/IRAF/bin.redhat/cl.e
The use of "~/IRAF/unix/...." here should be "$iraf/unix/....". The $iraf/bin.redhat directory is for the core system tasks (PLOT, IMAGES, etc), while $iraf/unix/bin.redhat are the "HSI binaries" for things related to compilation, graphics translators, etc. When the system is installed, a link called 'xpp' is made to the 'xpp.e' binary in the iraf$unix/bin.redhat. Variables like $IRAFARCH and $arch are used to locate the binaries. Hope this helps.
-Mike[/quote]
Last post on May 12, 2007