我想要一个像这样的结构/project/functions
/project/src
。我会有一个/project/functions/helloUnit.pas
类似于以下内容的单元:
unit helloUnit;
interface
implementation
uses classes;
procedure helloWorld(output);
begin
writeln('Hello, World');
end.
和一个/project/src/main.pas
类似的文件:
uses helloUnit;
Begin
helloWorld;
End.
我一直在尝试使其工作,但尚未找到方法。我在Linux命令行上使用fpc编译器,以防我未定义路径或其他内容。
您的示例代码有些问题,在尝试从命令行进行编译之前,对其进行修复将很有帮助。
首先,您需要一个项目文件进行fpc
编译以生成您的程序。为此,我在项目文件夹中创建了该文件并将其命名为hello.lpr
:
program Hello;
uses
hellounit,
main;
begin
HelloWorld;
end.
然后按以下步骤更正Main.Pas:
unit main;
interface
uses helloUnit;
procedure SayHello;
implementation
procedure SayHello;
Begin
helloWorld;
End;
End.
请注意,procedure SayHello;
它已添加到接口部分,End;
并且已添加到过程声明的末尾。该End.
告诉编译器,它已经达到该单元中的源代码的末尾。
下一个正确的helloUnit如下
unit helloUnit;
interface
procedure helloWorld;
implementation
uses classes;
procedure helloWorld;
begin
writeln('Hello, World');
end; {added}
end.
现在CompileHello.Bat
,在包含以下内容的项目文件夹中写入一个批处理文件(假定为Windows)
D:\Lazarus2\fpc\3.0.4\bin\i386-win32\fpc -Fufunctions;src hello.lpr
然后从项目文件夹中的CMD提示符运行它。该-Fu
编译器开关告诉FPC在哪里可以找到未在同一文件夹作为项目文件的单位。之后的路径-Fu
可以相对于项目文件夹。如果已按照上述步骤操作,则应成功编译。
如果您使用的是Lazarus,则随同IDE进行fpc的操作至少有两种方法。
在IDE中打开HelloUnit的情况下,使用View | 从IDE的菜单中将Editor File添加到Project中,以将HelloUnit添加到项目中。这可能是最好的方法,因为它可以明确标识项目的HelloUnit。
使用Project |将HelloUnit.Pas所在的文件夹添加到Project的源路径。单击选项,然后在弹出窗口的“编译器选项”下,将文件夹添加到RHS上的“其他单元文件”框中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句