1,105,229 Community Members

help with pascal

Member Avatar
blob84
Newbie Poster
5 posts since Jan 2011
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

Hello when I compile this piece of program written in pascal with gpc (GNU pascal for linux) for pascal, I get errors:

cradle: In function `_start':
(.text+0x0): multiple definition of `_start'
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/../../../../lib/crt1.o:(.text+0x0): first defined here
cradle: In function `_fini':
(.fini+0x0): multiple definition of `_fini'
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/../../../../lib/crti.o:(.fini+0x0): first defined here
cradle:(.rodata+0x0): multiple definition of `_IO_stdin_used'
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/../../../../lib/crt1.o:(.rodata.cst4+0x0): first defined here
cradle: In function `__data_start':
(.data+0x0): multiple definition of `__data_start'
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/../../../../lib/crt1.o:(.data+0x0): first defined here
cradle: In function `__data_start':
(.data+0x8): multiple definition of `__dso_handle'
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/crtbegin.o:(.data+0x0): first defined here
cradle: In function `_init':
(.init+0x0): multiple definition of `_init'
/usr/lib/gcc/x86_64-linux-gnu/4.1.3/../../../../lib/crti.o:(.init+0x0): first defined here
/tmp/ccu2saxU.o: In function `_p__M0_main_program':
1.1.p:(.text+0x7d9): multiple definition of `_p__M0_main_program'
cradle:(.text+0xa13): first defined here
/tmp/ccu2saxU.o: In function `_p__M0_init':
1.1.p:(.text+0x7e4): multiple definition of `_p__M0_init'
cradle:(.text+0xa23): first defined here
/tmp/ccu2saxU.o: In function `main':
1.1.p:(.text+0x804): multiple definition of `main'
cradle:(.text+0xa43): first defined here
/usr/bin/ld: warning: Cannot create .eh_frame_hdr section, --eh-frame-hdr ignored.
/usr/bin/ld: error in cradle(.eh_frame); no .eh_frame_hdr table will be created.
collect2: ld returned 1 exit status


program Cradle;

{ Constant Declarations }
const TAB = ^I;

{ Variable Declarations }
var Look: char;              { Lookahead Character }

{ Read New Character From Input Stream }
procedure GetChar;
begin
   Read(Look);
end;

{ Report an Error }
procedure Error(s: string);
begin
   WriteLn;
   WriteLn(^G, 'Error: ', s, '.');
end;

{ Report Error and Halt }
procedure Abort(s: string);
begin
   Error(s);
   Halt;
end;

{ Report What Was Expected }
procedure Expected(s: string);
begin
   Abort(s + ' Expected');
end;

{ Match a Specific Input Character }
procedure Match(x: char);
begin
   if Look = x then GetChar
   else Expected('''' + x + '''');
end;

{ Recognize an Alpha Character }
function IsAlpha(c: char): boolean;
begin
   IsAlpha := upcase(c) in ['A'..'Z'];
end;

{ Recognize a Decimal Digit }
function IsDigit(c: char): boolean;
begin
   IsDigit := c in ['0'..'9'];
end;

{ Get an Identifier }
function GetName: char;
begin
   if not IsAlpha(Look) then Expected('Name');
   GetName := UpCase(Look);
   GetChar;
end;

{ Get a Number }
function GetNum: char;
begin
   if not IsDigit(Look) then Expected('Integer');
   GetNum := Look;
   GetChar;
end;

{ Output a String with Tab }
procedure Emit(s: string);
begin
   Write(TAB, s);
end;

{ Output a String with Tab and CRLF }
procedure EmitLn(s: string);
begin
   Emit(s);
   WriteLn;
end;

{ Initialize }
procedure Init;
begin
   GetChar
end;

{ Main Program }
begin
   Init;
end.
Member Avatar
rubberman
Senior Poster
3,989 posts since Mar 2010
Reputation Points: 513 [?]
Q&As Helped to Solve: 500 [?]
Skill Endorsements: 87 [?]
 
1
 

How are your building/linking this? The errors indicate that you are trying to link multiple versions (or copies) of the named functions, resulting in the "multiple definition" errors.

Member Avatar
blob84
Newbie Poster
5 posts since Jan 2011
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

i found the problem, there is an output file with the same name of the binary output file, gcc overwrite it but this doesn't happen with gpc.

You
This article has been dead for over three months: Start a new discussion instead
Post:
Start New Discussion
Tags Related to this Article