I have a question regarding the way to link a Pascal module to C code. For example, if in the following module: Module ctest interface; Export ctests = all; Procedure MyCProc(I:Integer); external name 'mycproc'; End. { Interface } Module ctest Implementation; End; { Implementation } If mycproc() is implemented in cproc.c, is it better to put {$L cproc.c} in the Interface or in the Implementation Section? Both work, but is a way better than the other? Regards, Pascal Viandier pascal@accovia.com
Pascal Viandier wrote:
I have a question regarding the way to link a Pascal module to C code. For example, if in the following module:
Module ctest interface;
Export ctests = all;
Procedure MyCProc(I:Integer); external name 'mycproc';
End. { Interface }
Module ctest Implementation;
End; { Implementation }
If mycproc() is implemented in cproc.c, is it better to put {$L cproc.c} in the Interface or in the Implementation Section? Both work, but is a way better than the other?
I didn't check, but you can pass -v and look at the link command line to see if it makes any difference for the order of object files. Let us know the result. Regards, Adriaan van Os
I did the test using gpc and gp. The conclusion is: wherever is the $L directive, sources are compiled and objects are linked in the same order. So, may we say this as a matter of personal preference? Regards, Pascal Viandier
-----Message d'origine----- De : gpc-owner@gnu.de [mailto:gpc-owner@gnu.de] De la part de Adriaan van Os Envoyé : December 7, 2005 06:35 À : gpc@gnu.de Objet : Re: Best practice to link with C code
Pascal Viandier wrote:
I have a question regarding the way to link a Pascal module to C code. For example, if in the following module:
Module ctest interface;
Export ctests = all;
Procedure MyCProc(I:Integer); external name 'mycproc';
End. { Interface }
Module ctest Implementation;
End; { Implementation }
If mycproc() is implemented in cproc.c, is it better to put {$L cproc.c} in the Interface or in the Implementation Section? Both work, but is a way better than the other?
I didn't check, but you can pass -v and look at the link command line to see if it makes any difference for the order of object files. Let us know the result.
Regards,
Adriaan van Os
participants (2)
-
Adriaan van Os -
Pascal Viandier