Харесва ми библиотеките ми да се удвояват като изпълними файлове. Желаното поведение е:
$ ./scriptedmain
Main: The meaning of life is: 42
$ ./test
Test: The meaning of life is: 42
Как мога да:
- Накарайте
scriptedmain.p
да компилира вscriptedmain
двоичен файл? - Да се предотврати
test.p
да изпълнява кода, който е в разделаbegin
/end
наscriptedmain.p
?
scriptedmain.p:
unit ScriptedMain;
interface
function MeaningOfLife () : integer;
implementation
function MeaningOfLife () : integer;
begin
MeaningOfLife := 42
end;
begin
write('Main: The meaning of life is: ');
writeln(MeaningOfLife())
end.
Когато компилирам scriptedmain.p с fpc scriptedmain.p
, не се създава изпълним файл, защото Pascal открива, че това е единица. Но искам да бъде изпълним файл в допълнение към библиотека.
$ ./scriptedmain
-bash: ./scriptedmain: No such file or directory
test.p:
program Test;
uses
ScriptedMain;
begin
write('Test: The meaning of life is: ');
writeln(MeaningOfLife())
end.
Когато компилирам test.p с fpc test.p
, полученият изпълним файл комбинира двете begin
/end
декларации (НЕ желаното поведение).
$ ./test
Main: The meaning of life is: 42
Test: The meaning of life is: 42