如何在不安装IDE的情况下编译和运行此Delphi代码?

时间:2009-12-31 16:27:09

标签: delphi

据说生成一个winform:

var
  F : TForm;
  L : TLabel;
begin
  F := TForm.Create(Application);
  L := TLabel.Create(F);
  L.Parent := F; // Needed to have it show up on the form.
  L.Left := 50;
  L.Top := 50;
  L.Caption := 'This is an example';
  F.Show;
end;

实际上它来自my previous question

如果是C程序,我可以这样运行:

> gcc foo.c -o foo.exe
> foo.exe

我怎样才能在Delphi中做到这一点?

3 个答案:

答案 0 :(得分:9)

为了编译Delphi代码,您需要一个编译器。 Delphi没有免费版本,所以除非你能找到旧版本,否则你必须购买Delphi。 Delphi附带了一个命令行编译器,如gcc,可以在没有IDE的情况下编译程序。

Delphi 2006和win32之前:

dcc32 YourProject.dpr

Delphi 2006和之前的.Net:

dccil YourProject.dpr

Delphi 2007及之后:

msbuild YourProject.dproj

这将导致编译二进制文件,如果是EXE,您可以像以前一样运行它。

Delphi的免费替代品如FreePascal及其免费的IDE Lazarus。我没有自己检查,但我很确定它也带有命令行编译器。

答案 1 :(得分:2)

您应该在DPR文件中编写此代码。 DPR文件的一般结构是这样的:

program {ProgramName};

uses {List of used units};

begin
  {Your code}
end.

因此,对于上面的代码,您的DPR文件将是这样的:

program Project1;

uses
  Forms, StdCtrls;

var
  F : TForm;
  L : TLabel;
begin
  F := TForm.Create(nil);
  try
    L := TLabel.Create(F);
    L.Parent := F; // Needed to have it show up on the form.
    L.Left := 50;
    L.Top := 50;
    L.Caption := 'This is an example';
    F.ShowModal;
  finally
    F.Free;
  end;
end.

您可以在文本编辑器中键入此代码,并将其另存为Project1.dpr。

现在您可以使用Delphi的命令行编译器来编译它:

dcc32.exe Project1.dpr

答案 2 :(得分:1)

更容易,只是

dcc32 "name of the project"

即使程序存在于10个单元中,编译器也会自动解析它,如果在当前单元搜索路径中(请参阅dcc32.cfg,或使用-U和-I添加目录)。请注意,某些“免费”Explorer版本的Delphi没有附带cmdline编译器。

对于.NET,它是dccil。

当然,如果你与gcc进行比较,Free Pascal / Lazarus是一个更合乎逻辑的选择(但不适用于.NET)。