For Programmers: Free Programming Magazines  


Home > Archive > Clipper > October 2005 > Clipper Compile Error









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Clipper Compile Error
Shamsuddeen

2005-08-23, 6:55 pm

Hi all,
I have developed an Inventory program in Clipper. There are 75 sub
programs are called form the main program as follows:
Do Case
Case option = 100
do xxxx
Case option = 200
do xxxx
......
.....
.... so on

Endcase

If I add one more program to it and compile it, I get the following error
message with out creating the OBJ file:

Fatal C3018
Too many Symbols.

I am using Clipper ver. 5.2 and RTLink Ver 3.14B

But if I remove the last added program or any other program, it works
fine. I think the problem is due to the size of the program.

Any help is greately appreciated.

Regards,

Shamsuddeen


AUGE_OHR

2005-08-23, 6:55 pm

hi,

> Fatal C3018
> Too many Symbols.


C3018 Too many symbols

Explanation: The program file(s) compiled into the current object
file uses too many symbols.

Action: Simplify the program so that you use fewer symbols (e.g.,
reuse variable names when possible instead of defining new ones).

i saw a lot of "DO xxxx" ... did you compile all to 1 *.OBJ ( cl*pper main )
or do you use a *.LNK (rtlink) / *.RMK file (rmake ) ?

if you use *.LNK than you can use something like this :

PROCEDURE MAIN
LOCAL nPosi := 0
LOCAL aMenu := {{ "100",{ || Menu100() } } ,;
{ "200",{ || Menu200() } } ,;
...
{ "999",{ || Menu999() } } }

nPosi := ASCAN( aMenu, {|x| x[1] == cMySearch} )
IF nPosi > 0
EVAL(aMenu[nPosi,2])
ENDIF

greetings by OHR
Jimmy


Ron Pinkas

2005-08-23, 6:55 pm

>> Fatal C3018
>
> C3018 Too many symbols
>
> Explanation: The program file(s) compiled into the current object
> file uses too many symbols.
>
> Action: Simplify the program so that you use fewer symbols (e.g.,
> reuse variable names when possible instead of defining new ones).


Or, maybe it's time to switch to xHarbour... :-)

http://www.xHarbour.org (Free)
http://www.xHarbour.com (Commercial)
news://news.xHarbour.org/xHarbour (News Group)

Ron


tom knauf

2005-08-24, 3:55 am

Hi,

or try to put some .prg in one .prg as PROCEDURES and put a "set procedure
to" at the beginning of your code (reduces number of .obj, )
Use locals instead of privates
Use blinker instead of rtlink

hth
tom


"Shamsuddeen" <pkshams@gmail.com> schrieb im Newsbeitrag
news:983a3018d9d025eda235149bf782c623@lo
calhost.talkaboutprogramming.com...
> Hi all,
> I have developed an Inventory program in Clipper. There are 75 sub
> programs are called form the main program as follows:
> Do Case
> Case option = 100
> do xxxx
> Case option = 200
> do xxxx
> .....
> ....
> ... so on
>
> Endcase
>
> If I add one more program to it and compile it, I get the following error
> message with out creating the OBJ file:
>
> Fatal C3018
> Too many Symbols.
>
> I am using Clipper ver. 5.2 and RTLink Ver 3.14B
>
> But if I remove the last added program or any other program, it works
> fine. I think the problem is due to the size of the program.
>
> Any help is greately appreciated.
>
> Regards,
>
> Shamsuddeen
>
>



Shamsuddeen

2005-08-24, 6:55 pm

Thanks everybody for the replies.
As you mentioned in your replies, I have used a lots of memory variables.

I have a main program called Inventory and in that main program I have 5
sub programs called thru Do Case/Casexxx/Do.... and in each of the sub
programs I have another 10 to 12 programs.
This is how the structure of my program.

Is it possible to make more than one OBJ.

In my case, since all the sub programs are defined in the main program and
when I use Clipper Inventory, it automatically complies all the sub
programs and maked one OBJ. How to split it into two?

Your reply will be highly appreciated.
Thanks,
Shamsuddeen




E. Fridman

2005-08-24, 6:55 pm

<<< How to split it into two? >>>

Look into using RMAKE (http://www.clipx.net/ng/clutil/ng2a8b.php) and
link scripts ("Script File" in RTLink terms -
http://www.clipx.net/ng/clutil/ng11c4.php ) .

You will be able to have multiple PRGs that are compiled into OBJs
separately and then linked into a single executable.

Also, if your Clipper 5.2 is not patched to the "e" level I suggest
doing it. I would aslo like to second someone's recommendation to
invest in Blinker.

HTH, Eugene

ed

2005-10-01, 3:55 am

i recall a dos command.... cannot recall parameter code, but it was
used to expand the size of the symbol table ..

this was in the era of expanded and extended memory

set clipper=E:4096




"Shamsuddeen" <pkshams@gmail.com> wrote in message
news:983a3018d9d025eda235149bf782c623@lo
calhost.talkaboutprogramming.com...
> Hi all,
> I have developed an Inventory program in Clipper. There are 75 sub
> programs are called form the main program as follows:
> Do Case
> Case option = 100
> do xxxx
> Case option = 200
> do xxxx
> .....
> ....
> ... so on
>
> Endcase
>
> If I add one more program to it and compile it, I get the following error
> message with out creating the OBJ file:
>
> Fatal C3018
> Too many Symbols.
>
> I am using Clipper ver. 5.2 and RTLink Ver 3.14B
>
> But if I remove the last added program or any other program, it works
> fine. I think the problem is due to the size of the program.
>
> Any help is greately appreciated.
>
> Regards,
>
> Shamsuddeen
>
>



Alan Secker

2005-10-01, 7:55 am

On Fri, 30 Sep 2005 22:30:21 -0700, ed wrote:
[color=darkred]
> i recall a dos command.... cannot recall parameter code, but it was
> used to expand the size of the symbol table ..
>
> this was in the era of expanded and extended memory
>
> set clipper=E:4096
>
>
>
>
> "Shamsuddeen" <pkshams@gmail.com> wrote in message
> news:983a3018d9d025eda235149bf782c623@lo
calhost.talkaboutprogramming.com...

I have been expanding the same Clipper program for 15 or more years. It is
very large. I suspect I must be doing something right. I can only list the
relevant bits of the environment thast I use. Incidentally it is running
under Windows 98 sitting on Win4lin 9x over Mandriva Linux LE2005 and I
have no problems.

MY CONFIG.SYS:
SHELL=C:\COMMAND.COM C:\ /P /E:1024 /F
FILES=100

MY AUTOEXEC.BAT
Nothing specific to clipper

MY INITIALISATION BATCH FILE, CALLED WHENEVER I CALL THE DOS BOX.
CLIPPER=//F:54
SET TMP=C:\TEMP
SET INCLUDE=C:\PROGRA~.....
SET LIB=C:\PROGRA~.....
SET etc
PATH=%PATH%;C:\WINDOWS\SYSTEM; etc
C:
c:\windows\command\doskey.com

BLINKER
I use Blinker 3.03 (I think) for linking. The only line of significance
here is :

BLINKER EXECUTABLE CLIPPER //F:71

This burns default values for the Clipper runtime environment variables
into the executable file and does affect capacities.

I've no idea whether any of this will help but I thought it might be worth
a try.

The SET CLIPPER=:nnn line only determines how much expanded memory can be
allocated. It doesn't necessarily determine symbol space. At least the
manual doesn't say so. I fact I could find no mention of the symbol table.

Oddly enough the Harbour and xHarbour guys might be able to tell you more.
Their's are Open Source projects and so nothing is concealed.

Best of Luck

Alan





Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com