Не запускается консольное приложение (мак)

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

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

TonyB
новенький
Сообщения: 10
Зарегистрирован: 31.08.2014 14:55:26

Не запускается консольное приложение (мак)

Сообщение TonyB »

Всем привет,

Я новичек в программировании в лазарус, обучаюсь по одному учебнику и там в одном из первых примеров надо было написать консольное приложение. Практикуюсь на маке, а учебник, как вы сами понимаете, написан для винды, по этому имеются некоторые не соответствия.
Вобщем сделал все по аналогии как написанно в учебнике, компилирую, запускаю а результата ноль. Сборка проходит успешно а консольного окна нет. Очень неудобно себя чувствую, что на таком фуфловом задании застопорился. Хелп!)
Аватара пользователя
Helltar
новенький
Сообщения: 22
Зарегистрирован: 11.07.2013 02:28:53
Контактная информация:

Сообщение Helltar »

Запуск => Параметры запуска => Галочку на "Использовать приложение для запуска" (и там можно выбрать куда выводить, если есть варианты).
TonyB
новенький
Сообщения: 10
Зарегистрирован: 31.08.2014 14:55:26

Сообщение TonyB »

Поставил данную галочку, перезагрузил лазарус, результата не дало. :?
Может что-то с кодом не так? Создавал проект следующим способом: Проект => Создать проект => Консольное приложение
Вот содержимое редактора исходного кода.

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

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;
  gradus, minuta: integer;
  radian: real;
begin
  Application:=TMyApplication.Create(nil);
  Application.Title:='My Application';
  Application.Run;
  Application.Free;
  write('gradus=');
  readln(gradus);
  write('minuta=');
  readln(minuta);
  radian:=gradus*pi/180+minuta*pi/(180/60);
  writeln('radian=', radian);
end.
Аватара пользователя
Helltar
новенький
Сообщения: 22
Зарегистрирован: 11.07.2013 02:28:53
Контактная информация:

Сообщение Helltar »

TonyB, хм, на linux работает.

Попробуй Проект => Создать проект => Программа (третий пункт, это тоже консольное), потом поставь галочку на параметрах запуска, и не перезагружая Lazarus, запусти.
TonyB
новенький
Сообщения: 10
Зарегистрирован: 31.08.2014 14:55:26

Сообщение TonyB »

Попробовал, так же фигня.. Главное компиляция, отладка проходят, а запуск приложения не производится. Хм. Вот только что заметил, что сборка исполняемого файла тоже проходит успешно, и, что интересно, файл запускается и программа отлично работает. А вот из лазаруса запускаться не хочет.
Аватара пользователя
Helltar
новенький
Сообщения: 22
Зарегистрирован: 11.07.2013 02:28:53
Контактная информация:

Сообщение Helltar »

TonyB, покажи что у тебя в строке, то есть под "Использовать приложение для запуска", может приложения такого то и нет.
TonyB
новенький
Сообщения: 10
Зарегистрирован: 31.08.2014 14:55:26

Сообщение TonyB »

Helltar, в строке под "Использовать приложение для запуска" у мен пусто. Не знаю что там прописывать! А надо? :D
Аватара пользователя
Helltar
новенький
Сообщения: 22
Зарегистрирован: 11.07.2013 02:28:53
Контактная информация:

Сообщение Helltar »

TonyB, :D

А варианты выбора там есть? У меня например, /usr/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine), не знаю что там в макос... попробуй прописать путь к своему терминалу.
TonyB
новенький
Сообщения: 10
Зарегистрирован: 31.08.2014 14:55:26

Сообщение TonyB »

Вариантов выбора нет! :(
Прописал путь к терминалу, открывает терминал и далее ничего не происходит :lol:
Истина где-то рядом, я чувствую это, но где же она ааааа хелп!
TonyB
новенький
Сообщения: 10
Зарегистрирован: 31.08.2014 14:55:26

Сообщение TonyB »

Helltar, действительно, там что-то есть. :lol:
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

TonyB, а можно посмотреть как Вы запускаете? Тут знаете ли тоже траблы могут быть.

Например, в линуксе требуется (может потребоваться) ставить точку перед именем программы.
TonyB
новенький
Сообщения: 10
Зарегистрирован: 31.08.2014 14:55:26

Сообщение TonyB »

Лекс Айрин, думаю дело не в этом. Запускаю посредством лазаруса. С запуском собранного исполняемого файла проблем не возникает.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

TonyB, в лазаре тоже может быть неправильно настроено :(
Попробуйте отключить отладчик. Были с этим в маке какие-то проблемы.
TonyB
новенький
Сообщения: 10
Зарегистрирован: 31.08.2014 14:55:26

Сообщение TonyB »

Лекс Айрин, с отключенных отладчиком все работает! :shock:
Спасибо за помощь, бро! А со включенным никак не сделать? :D
Ответить