Не запускается консольное приложение (мак)
Модератор: Модераторы
Не запускается консольное приложение (мак)
Всем привет,
Я новичек в программировании в лазарус, обучаюсь по одному учебнику и там в одном из первых примеров надо было написать консольное приложение. Практикуюсь на маке, а учебник, как вы сами понимаете, написан для винды, по этому имеются некоторые не соответствия.
Вобщем сделал все по аналогии как написанно в учебнике, компилирую, запускаю а результата ноль. Сборка проходит успешно а консольного окна нет. Очень неудобно себя чувствую, что на таком фуфловом задании застопорился. Хелп!)
Я новичек в программировании в лазарус, обучаюсь по одному учебнику и там в одном из первых примеров надо было написать консольное приложение. Практикуюсь на маке, а учебник, как вы сами понимаете, написан для винды, по этому имеются некоторые не соответствия.
Вобщем сделал все по аналогии как написанно в учебнике, компилирую, запускаю а результата ноль. Сборка проходит успешно а консольного окна нет. Очень неудобно себя чувствую, что на таком фуфловом задании застопорился. Хелп!)
Запуск => Параметры запуска => Галочку на "Использовать приложение для запуска" (и там можно выбрать куда выводить, если есть варианты).
Поставил данную галочку, перезагрузил лазарус, результата не дало. 
Может что-то с кодом не так? Создавал проект следующим способом: Проект => Создать проект => Консольное приложение
Вот содержимое редактора исходного кода.
Может что-то с кодом не так? Создавал проект следующим способом: Проект => Создать проект => Консольное приложение
Вот содержимое редактора исходного кода.
Код: Выделить всё
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.
TonyB, хм, на linux работает.
Попробуй Проект => Создать проект => Программа (третий пункт, это тоже консольное), потом поставь галочку на параметрах запуска, и не перезагружая Lazarus, запусти.
Попробуй Проект => Создать проект => Программа (третий пункт, это тоже консольное), потом поставь галочку на параметрах запуска, и не перезагружая Lazarus, запусти.
Попробовал, так же фигня.. Главное компиляция, отладка проходят, а запуск приложения не производится. Хм. Вот только что заметил, что сборка исполняемого файла тоже проходит успешно, и, что интересно, файл запускается и программа отлично работает. А вот из лазаруса запускаться не хочет.
TonyB, покажи что у тебя в строке, то есть под "Использовать приложение для запуска", может приложения такого то и нет.
Helltar, в строке под "Использовать приложение для запуска" у мен пусто. Не знаю что там прописывать! А надо? 
TonyB, 
А варианты выбора там есть? У меня например, /usr/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine), не знаю что там в макос... попробуй прописать путь к своему терминалу.
А варианты выбора там есть? У меня например, /usr/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine), не знаю что там в макос... попробуй прописать путь к своему терминалу.
Вариантов выбора нет!
Прописал путь к терминалу, открывает терминал и далее ничего не происходит
Истина где-то рядом, я чувствую это, но где же она ааааа хелп!
Прописал путь к терминалу, открывает терминал и далее ничего не происходит
Истина где-то рядом, я чувствую это, но где же она ааааа хелп!
Helltar, действительно, там что-то есть. 
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
TonyB, а можно посмотреть как Вы запускаете? Тут знаете ли тоже траблы могут быть.
Например, в линуксе требуется (может потребоваться) ставить точку перед именем программы.
Например, в линуксе требуется (может потребоваться) ставить точку перед именем программы.
Лекс Айрин, думаю дело не в этом. Запускаю посредством лазаруса. С запуском собранного исполняемого файла проблем не возникает.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
TonyB, в лазаре тоже может быть неправильно настроено 
Попробуйте отключить отладчик. Были с этим в маке какие-то проблемы.
Попробуйте отключить отладчик. Были с этим в маке какие-то проблемы.
Лекс Айрин, с отключенных отладчиком все работает!
Спасибо за помощь, бро! А со включенным никак не сделать?
Спасибо за помощь, бро! А со включенным никак не сделать?
