Здравствуйте, уважаемые!
Относительно недавно перешел на Лазарус и столкнулся с такой проблемой (версии 0.9.28.2, 0.9.29):
Вот такой код (взят пример из книги по Лазарусу) компилируется без проблем:
Library subs ;
function SubStr ( CString : PChar ; FromPos , ToPos : Longint ) : PChar ; cdecl ;
var Length : Integer ;
begin
  Length := StrLen ( CString ) ;
  SubStr := CString + Length ;
  if ( FromPos > 0 ) and ( ToPos >= FromPos ) then
  begin
    if Length >= FromPos then SubStr := CString + FromPos - 1;
    if Length > ToPos then CString [ ToPos ] := # 0 ;
  end ;
end ;
exports
  SubStr;
end .
Но если я использую в библиотеке модуль и ссылаюсь на него:
{код библиотеки}
library project1;
{$mode objfpc}{$H+}
uses
  Classes, Unit1;
{$R *.res}
exports
  ShowForm name 'ShowForm'; cdecl;
end.
{код модуля, форма пустая}
unit Unit1; 
{$mode objfpc}{$H+}
interface
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs; 
type
  TForm1 = class(TForm)
  private
    { private declarations }
  public
    { public declarations }
  end; 
var
  Form1: TForm1;
procedure ShowForm;
implementation
{$R *.lfm}
procedure ShowForm; cdecl;
begin
  with TForm1.Create(nil) do
  begin
    Hide;
    ShowModal;
    Free;
  end;
end;
end.
На этапе компиляции выдается ошибка  unit1.pas(8,22) Fatal: Can't find unit FileUtil used by Unit1 
Может кто сталкивался с подобным, подскажете чего.
			
		
