Kocherlakota Harikrishna wrote:
Our main program was actually calling many units and we were getting a lot of errors .So we thought we will concentrate on pcamac.pas alone and make a .o file by compiling it.
As I said, use `-c' then.
Now we have written a simple program to use a procedure from pcamac. Still we get the similar errors.We have attached the verbose ouput of it.
OK, that's already fewer errors... :-)
About the undefined reference to `toCall', `Get_loadpath' and `Moved'. These seem to be identifiers from your code, so I can only guess why they are missing:
- You declared them `external' and didn't reference the unit containing them.
- They were written in C or assembler and you didn't tell the compiler about it (you can use `{$L foo.c}' or `{$L foo.s}' or specify the file on the command line.
- They were written in C or assembler or declared with an explicit `asmname' directive, and upper and lower case letters were mixed up. (Note, while Pascal identifiers are case-insensitive, assembler symbols, including `asmname's, and C identifiers, are case-sensitive.)
If this doesn't help you find the problem, I can only help you further if you show me the places in the code where they are defined and used.
About the multiple definition of `_p_strrscan'. `_p_strrscan' is the assembler symbol for the RTS routine CStringLastChPos. Do you happen to declare a routine of that name in yuor code? Though it's not reserved, that's currently a known bug that GPC will use the same assembler symbol then, resulting in such a problem. Please use another identifier then. If that's not the case, I don't know what's the problem, without seeing the code. You could try temporarily removing parts of pcamac.pas to find out what's causing the problem...
Frank