Fatal: Can't open include file "fileutil.inc

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Fatal: Can't open include file "fileutil.inc

Сообщение R1DDLE » 16.02.2010 17:01:42

Всем привет!

Пишу консольную прогу в lazarus'е. При попытке компиляции появляется ошибка `Fatal: Can't open include file "fileutil.inc"`.
Версия lazarus: 0.9.28.2 beta. ОС Windows7 32bit
Вот мой исходник:
Код: Выделить всё
program console0;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes, SysUtils, CustApp,
  FileUtil
  { you can add units after this };

type

  { TMyApplication }

  TMyApplication = class(TCustomApplication)
  private
    InputFileName : string;
    OutputFileName: string;
    LogFileName   : string;
    InputFile     : TFileStream;
    OutputFile    : TFileStream;
    LogFile       : TStringList;
  protected
    procedure     DoRun;                        override;
  public
    constructor   Create(TheOwner: TComponent); override;
    destructor    Destroy;                      override;
    procedure     WriteHelp;                    virtual;
    procedure     WriteMessage(str :string);
  end;

{ TMyApplication }

procedure TMyApplication.DoRun;
var
  ErrorMsg: String;
begin
  // quick check parameters
  ErrorMsg:=CheckOptions('h','help');
  if ErrorMsg<>'' then begin
    ShowException(Exception.Create(ErrorMsg));
    Terminate;
    Exit;
  end;

  // parse parameters
  if HasOption('h','help') then begin
    WriteHelp;
    Terminate;
    Exit;
  end;
  if HasOption('i','input') then InputFileName :=GetOptionValue('i','input')
    else                         InputFileName :=ExeName;
  if HasOption('o','output')then OutputFileName:=GetOptionValue('o', 'output')
    else                         OutputFileName:=InputFileName+'.ksa';
  if HasOption('l','log')   then LogFileName   :=GetOptionValue('l','log')
    else                         LogFileName   :='log.txt';
  { add your program here }
  try
    LogFile:=TStringList.Create;
  except
    WriteMessage('Ошибка создания объекта "LogFile:=TStringList.Create;"' +
      'в "procedure TMyApplication.DoRun"');
  end;
  try
    InputFile:=TFileStream.Create(InputFileName, fmCreate, fmShareExclusive);
  except
    WriteMessage('Ошибка создания объекта ' +
      '"InputFile:=TFileStream.Create(InputFileName, fmCreate, ' +
      'fmShareExclusive);" в "procedure TMyApplication.DoRun"');
  end;
  // stop program loop
  Terminate;
end;

constructor TMyApplication.Create(TheOwner: TComponent);
begin
  inherited Create(TheOwner);
  StopOnException:=True;
end;

destructor TMyApplication.Destroy;
begin
  inherited Destroy;
end;

procedure TMyApplication.WriteHelp;
begin
  { add your help code here }
  WriteMessage('Для справки введите:'+ExeName+' -h');
  WriteMessage('или введите:'+ExeName+' -help');
end;

procedure TMyApplication.WriteMessage(str :string);
var
  buffer     : string;
  SystemTime: TSystemTime;
begin
  GetLocalTime(SystemTime);
  buffer:='[' + FormatDateTime('dddd-dd/mm/yyyy-hh:nn:ss:zz',
  SystemTimeToDateTime(SystemTime)) + ']: ' + str;
  try
    LogFile.Add(buffer);
    LogFile.SaveToFile(LogFileName);
  finally
    WriteLn(UTF8ToConsole(buffer));
  end;
end;

var
  Application: TMyApplication;

{$IFDEF WINDOWS}{$R console0.rc}{$ENDIF}

begin
  Application:=TMyApplication.Create(nil);
  Application.Title:='My Application';
  Application.Run;
  Application.Free;
end.


Выделяет 237-ю строку: `{$I fileutil.inc}` в модуле FileUtil.

Файл fileutil.inc есть в наличии и прекрасно открывается редактором кода. И ещё один момент: При нажатии Ctrl в модуле FileUtil подсвечиваются как ссылки все функции и методы кроме тех, что реализованы в ileutil.inc.

Пожалуйста, подскажите как исправить, чтобы код остался кроссплатформенным и не зависимым от текущей кодировки консоли.

Заранее спасибо!
R1DDLE
новенький
 
Сообщения: 26
Зарегистрирован: 08.12.2009 19:00:24

Re: Fatal: Can't open include file "fileutil.inc

Сообщение Mr.Smart » 16.02.2010 17:24:02

подключите пакет LCL.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Fatal: Can't open include file "fileutil.inc

Сообщение R1DDLE » 16.02.2010 21:00:53

Каким образом?
После добавления в uses LCL ничего не изменилось. Стопорится на той же строке, типа не может открыть файл fileutil.inc.
R1DDLE
новенький
 
Сообщения: 26
Зарегистрирован: 08.12.2009 19:00:24

Re: Fatal: Can't open include file "fileutil.inc

Сообщение Mr.Smart » 16.02.2010 21:07:46

Нет Лазаруса под рукой. В зависимостях проекта добавить пакет LCL. Посмотри в меню Проект, кажется там такое было.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Fatal: Can't open include file "fileutil.inc

Сообщение Padre_Mortius » 16.02.2010 21:21:04

В меню "Проект" выбрать пункт "Инспектор проекта". И там уже добавить пакет LCL
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Fatal: Can't open include file "fileutil.inc

Сообщение R1DDLE » 16.02.2010 21:33:13

Padre_Mortius писал(а):В меню "Проект" выбрать пункт "Инспектор проекта". И там уже добавить пакет LCL

Сделал. Та же ошибка в той же строке. :cry:
R1DDLE
новенький
 
Сообщения: 26
Зарегистрирован: 08.12.2009 19:00:24

Re: Fatal: Can't open include file "fileutil.inc

Сообщение Padre_Mortius » 16.02.2010 22:00:53

fpc 2.4.0 + lazarus svn + ваш пример. Все компилируется
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Fatal: Can't open include file "fileutil.inc

Сообщение R1DDLE » 17.02.2010 00:03:50

Версия lazarus:0.9.28.3 бета
Версия fpc: 2.4.0
Результат тот же.
R1DDLE
новенький
 
Сообщения: 26
Зарегистрирован: 08.12.2009 19:00:24

Re: Fatal: Can't open include file "fileutil.inc

Сообщение Padre_Mortius » 17.02.2010 00:27:05

В инспекторе проектов у вас также как и на скриншоте?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Fatal: Can't open include file "fileutil.inc

Сообщение R1DDLE » 17.02.2010 00:48:08

Да, только у проекта имя другое.
R1DDLE
новенький
 
Сообщения: 26
Зарегистрирован: 08.12.2009 19:00:24

Re: Fatal: Can't open include file "fileutil.inc

Сообщение Padre_Mortius » 17.02.2010 01:16:07

попробуйте скомпилить проект из вложения

Добавлено спустя 6 минут 40 секунд:
кстати, а файл fileutil.inc у вас есть в папке lazarus\lcl\include
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Fatal: Can't open include file "fileutil.inc

Сообщение R1DDLE » 17.02.2010 15:10:25

Попробовал: console0.lpr(8,13) Fatal: Can't find unit FileUtil used by console0. выделяет строку №8 исходника: `{$ENDIF}{$ENDIF} `. Не видит FileUtil.

Позже добавил через инспектор проекта FileUtil в проект. Вернулась старая ошибка.

Ещё позже добавил fileutil.inc в проект тем же способом. Никаких изменений. Хотя fileutil.inc в редакторе открывается без проблем. :(

P.S. Неужели это всё из-за ОСи :?:
R1DDLE
новенький
 
Сообщения: 26
Зарегистрирован: 08.12.2009 19:00:24

Re: Fatal: Can't open include file "fileutil.inc

Сообщение Padre_Mortius » 18.02.2010 01:17:18

Это полностью ваш проект только исправленный. Он нормально компилится и под Linux и под Windows XP, но не работает.

попробуйте пересобрать Лазарус. На форуме вроде как есть (были) люди, кто использует Windows 7. Так что не факт, что дело в системе
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Fatal: Can't open include file "fileutil.inc

Сообщение R1DDLE » 24.02.2010 01:06:19

Проблему решил. Нужно было прописать пути ко всем инклудам в проекте.
R1DDLE
новенький
 
Сообщения: 26
Зарегистрирован: 08.12.2009 19:00:24

Re: Fatal: Can't open include file "fileutil.inc

Сообщение Padre_Mortius » 24.02.2010 01:12:21

Бред какой-то. Можно посмотреть на ваш fpc.cfg?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43

Рейтинг@Mail.ru