Lazarus и School Linux Lite

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

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

Александр Яшин
новенький
Сообщения: 67
Зарегистрирован: 21.11.2009 08:31:01

Lazarus и School Linux Lite

Сообщение Александр Яшин »

Установил Lazarus на школьный линукс (School Linux Lite 4.0.0). Установилось нормально с первого раза, но при компиляции даже пустого проекта выдает ошибку

project1.lpr(17,1) Error: Ошибка при компоновке

Никак не могу найти причину. Подскажите, кто знает.
В Windows такое происходило, если новый проект не сохраняешь. После сохранения компилировалось.
А здесь и сохранение не помогает.
Аватара пользователя
AShen
постоялец
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Сообщение AShen »

2 Light13: Посмотрел ссылку. Не понял, а с какого бока kdevelop & lazarus ... И по чему я не видел записи в bugzilla.altlinux.ru по данному поводу? ...
Проблема в не выявленных зависимостях вида requires в rpm. А вот что именно надо мне не понятно. Ни разу ещё такой ошибки не встречал ...

2 Александр Яшин: Как ставили лазарь в школном линуксе то? Что то вы криво его поставили ...
А ещё поставьте себе свежий школьный линукс.
iso можно взять здесь:
ftp://ftp.altlinux.ru/pub/distributions ... so/school/
Александр Яшин
новенький
Сообщения: 67
Зарегистрирован: 21.11.2009 08:31:01

Сообщение Александр Яшин »

Sorry!
При установке не отметил пункт "Образование". Если его отметить, Lazarus ставится автоматически.
Свежую версию, к сожалению, скачать не могу. У меня очень ограниченный Интернет.
Теперь у меня два вопроса.
1. При создании пустого проекта Lazarus автоматически создает Unit1, содержание которого следующее:

Код: Выделить всё

program Project1;

{$mode objfpc}{$H+}

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

type

  { TMyApplication }

  TMyApplication = class(TCustomApplication)
  protected
    procedure DoRun; override;
  public
    constructor Create(TheOwner: TComponent); override;
    destructor Destroy; override;
    procedure WriteHelp; virtual;
  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;

  { add your program here }

  // 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 }
  writeln('Usage: ',ExeName,' -h');
end;

var
  Application: TMyApplication;

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

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


Я попробовал удалить весь этот код и написал просто:

Код: Выделить всё

program Project1;
uses Crt;
begin
  writeln('Hello, World');
  readkey;
end.


Все откомпилировалось и выполнилось.

Вопрос: можно ли так делать. Если можно, то зачем весь этот длинный код. Если нельзя, то почему?

2. Нашел дистрибутив Ubunta 9.04 установил его. На первый взгляд он мне нравится больше. У меня есть rpm файлы fpc и Lazarus. А установить не получается. Пошарил по форуму, вроде нужны deb файлы. А что через rpm нельзя что ли?
Неужели придется скачивать deb-файлы?
serg_iv
постоялец
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

Сообщение serg_iv »

Нашел дистрибутив Ubunta 9.04 установил его. На первый взгляд он мне нравится больше. У меня есть rpm файлы fpc и Lazarus. А установить не получается. Пошарил по форуму, вроде нужны deb файлы. А что через rpm нельзя что ли?
Неужели придется скачивать deb-файлы?

Когда то пробовал конвертировать rpm в deb. Но установка закончипась неудачно.
Через Synaptic ставится, но в Бубунте 9.10 не установился по зависимостям fp-units, часа два думал куда подевалась Libс.
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Александр Яшин писал(а):Нашел дистрибутив Ubunta 9.04 установил его. На первый взгляд он мне нравится больше. У меня есть rpm файлы fpc и Lazarus. А установить не получается. Пошарил по форуму, вроде нужны deb файлы. А что через rpm нельзя что ли?
Неужели придется скачивать deb-файлы?

Лучше скачать deb, так как модификация rpm в deb c помощью alien ничего путного не дает. Наилучший способ установки под Ubuntu обсуждается Lazarus в Ubuntu
Аватара пользователя
Astralis
новенький
Сообщения: 45
Зарегистрирован: 06.06.2007 20:33:05
Откуда: Tvercity-Annet
Контактная информация:

Сообщение Astralis »

Код: Выделить всё
program Project1;
uses Crt;
begin
writeln('Hello, World');
readkey;
end.

Все откомпилировалось и выполнилось.


ошибка в компоновке связана с неправильной сборкой LCL на Altlinux 4.0 она возникает только при попытке собрать графические приложения.
вы можете заново пересобрать весь LCL, но лучше скачать уже пятую платформу, где данного недостатка уже нет, да и версия новее.
Аватара пользователя
AShen
постоялец
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Сообщение AShen »

2 Александр Яшин:
ещё раз перечитал ваше сообщение. Это бага https://bugzilla.altlinux.org/show_bug.cgi?id=17531, которая давно исправлена. Либо обновитесь до бранча школьного линукса 2007-ого года, либо обновитесь до бранча 4.1, а ещё лучше обновитесь до бранча p5.

2 Astralis: не верно, проблема не в неправильной сборке LCL, а в отсутствии нужной зависимости в пакете, которая решилоась установкой kdevelop'а. А точнее не хватки glibc-devel. Ну а теперь объясните, как "ошибка в компоновке связана с неправильной сборкой LCL"?
Александр Яшин
новенький
Сообщения: 67
Зарегистрирован: 21.11.2009 08:31:01

Сообщение Александр Яшин »

Если при установке школьного лазаруса отметить пункт "Установить пакет "Образование", то Лазарус ставится автоматически и в этом случае такого бага нет. Но у меня был еще вопрос (наверное не очень понятно сформулировал).
При создании консольного приложения Лазарус автоматически создает достаточно длинный код, который я приводил. Вопрос был в том правильно ли будет, если этот код вообще убрать, а написать например, так:

Код: Выделить всё

program Project1;
uses Crt;
begin
writeln('Hello, World');
readkey;
end.


Ведь программа нормально компилируется и выполняется.
Аватара пользователя
AShen
постоялец
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Сообщение AShen »

Я думаю правильно в данном случае использовать fpc, а не lazarus для создания консольного приложения.
На фига тянуть графику в консоль?
Если "слишком навороченное" консольное, использующие ООП в своей основе то, то что создаёт лазарь думаю оставить как есть.
А для простых вещей чистый fpc. Можно для разработки использовать fp - IDE fpc, но ни текcт русcкий там не введёшь, ни комментарий по русски не напишешь (но это уже отдельная тема).
В bp я спокойно создавал программы использующие тоько ООП и ни каких проблем отсуствия визуализации аля Delphi не испытывал.
Александр Яшин
новенький
Сообщения: 67
Зарегистрирован: 21.11.2009 08:31:01

Сообщение Александр Яшин »

IDE FPC мне не нравится. Раз Lazarus позволяет создавать консольные приложения, то, наверное, можно все же так как я, при условии, что не применяешь ООП.
Аватара пользователя
AShen
постоялец
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Сообщение AShen »

Хозяин барин ... ;)
Раз у вас получилось из лазаря сделать прогу, не использующию ООП, то значит можно.
Просто лазарь создаёт консольное приложение, на основе шаблона, где программа это объект TApplication, от сюда всё остальное и тянется.
Александр Яшин
новенький
Сообщения: 67
Зарегистрирован: 21.11.2009 08:31:01

Сообщение Александр Яшин »

Типа программы Hello, что я приводил в качестве примера. Мы ООП еще не проходили, хотя я о нем слышал.
Аватара пользователя
AShen
постоялец
Сообщения: 155
Зарегистрирован: 26.08.2005 10:22:44
Откуда: Новороссийск

Сообщение AShen »

Вы в школе учитесь или в ВУЗ'е/СУЗ'е?
Аватара пользователя
Astralis
новенький
Сообщения: 45
Зарегистрирован: 06.06.2007 20:33:05
Откуда: Tvercity-Annet
Контактная информация:

Сообщение Astralis »

не верно, проблема не в неправильной сборке LCL, а в отсутствии нужной зависимости в пакете, которая решилоась установкой kdevelop'а. А точнее не хватки glibc-devel. Ну а теперь объясните, как "ошибка в компоновке связана с неправильной сборкой LCL"?

Это одно и тоже, потому что собрать LCL без glibc-devel, который указан в BuildRequires, все равно не удастся. Просто при повторная сборка быстрее и очевиднее нашла бы проблему.
Ответить