Mein kleines erstes Programm gehts nicht :(

Rund um die LCL und andere Komponenten
Nordmende
Beiträge: 16
Registriert: Sa 23. Aug 2008, 14:42
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Mein kleines erstes Programm gehts nicht :(

Beitrag von Nordmende »

Hallo !

Da wir in der schule grad mit Delphi anfangen, hab ich mir für zuhause einen Editor gesucht und bin auf Lazarus gestoßen.

Mit Hilfe des Grundlagen-Tuts auf delphi-treff.de habe ich ein ultrakleines und simples Programm gebastelt.

Das einzige was es kann:
Wenn ich auf einen Butten klicke soll sich das Programm schließen

Doch das geht nicht....

Die Fehlermeldung:

Code: Alles auswählen

mep.lpr(11,40) Error: Duplicate identifier "MEP"
mep.lpr(1,1) Fatal: Can't find unit Interfaces used by mep
Meine pas-Datei (Programm heißt mep > mein erstes programm)

Code: Alles auswählen

unit mep_unit;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 
 
var
  Form1: TForm1;
 
implementation
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;
 
initialization
  {$I mep_unit.lrs}
 
end.
Meine lpr-Datei:

Code: Alles auswählen

program mep_program;
 
{$mode objfpc}{$H+}
 
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms
  { you can add units after this }, mep_unit;
 
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Diese ganzen Sachen in der lpr-Datei habe ich nicht reingeschrieben, entweder waren sie vorher da oder Lazarus hat sie automatisch editiert. Genauso manche sachen in der pas-Datei ({$mode objfpc}{$H+} z.b., was auch immer das ist.....)

Wäre cool wenn ihr mir helfen könntet :)
Zuletzt geändert von Nordmende am Sa 23. Aug 2008, 16:33, insgesamt 1-mal geändert.

Benutzeravatar
theo
Beiträge: 10871
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Da kommste doch selber drauf oder?
Programm und Unit sollten nicht gleich heissen.

Nordmende
Beiträge: 16
Registriert: Sa 23. Aug 2008, 14:42
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Nordmende »

Achso, hab den jetzt 2 verschiedene Namen gegeben
Einmal mep_unit und mep_programm

(oben editiert)

Doch jetzt kommt diese Fehlermeldung....

Code: Alles auswählen

mep_program.lpr%u281,1%u29 Fatal%u3a Can't find unit Interfaces used by mep_program
Habe Lazarus mit "Build All" und als IDE "gtk" nochmal neu erstellt:

Es erscheint dann folgende Meldung:

Code: Alles auswählen

"LCL" completed
"SynEdit" completed
"CodeTools" completed
"Package-Registrierung" completed
"IDE-Schnittstelle" completed
"JIT-Form" completed
/usr/lib/lazarus/ide/lazarus.pp%u281,1%u29 Fatal%u3a Can't find unit Interfaces used by Lazarus
Mit "qt" als IDE kommt hingegen nur eine Fehlermeldung......

Code: Alles auswählen

make%u5b2%u5d%u3a *** %u5b../../units/i386-linux/qt%u5d Error 1
qt ist in der Version 4.4.1-2 installiert...

Nordmende
Beiträge: 16
Registriert: Sa 23. Aug 2008, 14:42
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Nordmende »

Kann keiner helfen ?

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Hallo Nordmende,

willkommen im Forum!

Einfacher als zu untersuchen, was in deinem Projekt schief gelaufen ist, habe ich dir dein Beispiel schnell erstellt und angefügt.

D.h. wenn du es mit Lazarus öffnest, sollte es wie gewünscht laufen.

Viele Grüße, Euklid
Dateianhänge
test.tar.gz
(1.75 KiB) 76-mal heruntergeladen

Nordmende
Beiträge: 16
Registriert: Sa 23. Aug 2008, 14:42
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Nordmende »

@Euklid

Danke, probiere es mal aus !

€ Auch dein Programm erzeugt wie alle anderen diesen Fehler

Code: Alles auswählen

project1.lpr%u281,1%u29 Fatal%u3a Can't find unit Interfaces used by project1
(Variert nur aufgrund des Namens der program-Datei)

Die > FAQ "LCL" completed
"SynEdit" completed
"CodeTools" completed
"Package Registration" completed
"IDE Interface" completed
"JIT Form" completed
/usr/lib/lazarus/ide/lazarus.pp%u281,1%u29 Fatal%u3a Can't find unit Interfaces used by Lazarus[/code]

:(

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Nordmende hat geschrieben:Danke, probiere es mal aus !
Habe ich - bei mir funktioniert es einwandfrei. Ich habe aber eine Vermutung, wo dein Problem liegen könnte:

Schau mal in Projekt --> Compilereinstellungen

Hier sollte unter LCL-Schnittstelle "gtk" stehen, wenn du unter Linux bist, und win32, wenn unter Windows. Entsprechend müssen die Einstellungen "Zielplattform" im Tab Quelltext angepasst werden.
Alternativ kannst du auch alle Einstellungen auf "Standard" stellen - dann sollte er automatisch die richtigen Einstellungen wählen (hoffe ich).

Viele Grüße, Euklid

Nordmende
Beiträge: 16
Registriert: Sa 23. Aug 2008, 14:42
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Nordmende »

Ich hab die LCL-Schnittstelle auf "default (gtk)" gestellt und Target/IDE auch auf gtk und Lazarus nochmal neu gebaut.

Es kommt die Meldung wie die letzte in meinem vorigen Post..........

Wenn ich jetzt ein beliebiges Programm starten will, kommt die altbekannte Fehlermeldung das er das user interface nicht finden kann................

Gehe ich nach deinem Tipp unter "project" auf "Compiler options" (mein lazarus ist in englisch da in deutsch alle umlaute mit irgendwelchen gräßlichen symbolen dargestellt werden, warum auch immer.........) und klicke unter "LCL Widget Type" "default (gtk)" an und klicke auf "Test"
so kommt folgende Meldung:

Code: Alles auswählen

There is a .ppu File older than die compiler itself
/usr/lib/fpc/2.2.2/units/i386-linux/rtl/system.ppu
Ignoriere ich diese, erscheinen im Ergebnis (Result) Feld folgende Zeilen:

Code: Alles auswählen

WARNING: ppu exists twice: /usr/lib/fpc/2.2.2/units/i386-linux/httpd20/httpd.ppu, /usr/lib/fpc/2.2.2/units/i386-linux/httpd13/httpd.ppu
WARNING: ppu exists twice: /usr/lib/fpc/2.2.2/units/i386-linux/httpd22/apr.ppu, /usr/lib/fpc/2.2.2/units/i386-linux/httpd20/apr.ppu
WARNING: ppu exists twice: /usr/lib/fpc/2.2.2/units/i386-linux/httpd22/apriconv.ppu, /usr/lib/fpc/2.2.2/units/i386-linux/httpd20/apriconv.ppu
WARNING: ppu exists twice: /usr/lib/fpc/2.2.2/units/i386-linux/httpd22/aprutil.ppu, /usr/lib/fpc/2.2.2/units/i386-linux/httpd20/aprutil.ppu
WARNING: ppu exists twice: /usr/lib/fpc/2.2.2/units/i386-linux/httpd22/httpd.ppu, /usr/lib/fpc/2.2.2/units/i386-linux/httpd20/httpd.ppu
WARNING: ppu exists twice: /usr/lib/fpc/2.2.2/units/i386-linux/unzip/unzip.ppu, /usr/lib/fpc/2.2.2/units/i386-linux/paszlib/unzip.ppu
WARNING: ppu exists twice: /usr/lib/fpc/2.2.2/units/i386-linux/fv/dialogs.ppu, /usr/lib/lazarus/lcl/units/i386-linux/dialogs.ppu
WARNING: ppu exists twice: /usr/lib/fpc/2.2.2/units/i386-linux/fv/menus.ppu, /usr/lib/lazarus/lcl/units/i386-linux/menus.ppu

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

1. Hast du auch in den Tab "Quelltext" geguckt? Und da die Zielplattform gewählt?

2.
Du verwendest Lazarus 0.9.24 und FPC 2.2.2?
Wird die 0.9.24 nicht standardmäßig mit der 2.2.0 ausgeliefert?

Wenn du deinen FPC aktualisiert hast - und für mich deutet alles darauf hin - dann scheint dabei etwas schief gelaufen zu sein.

Nordmende
Beiträge: 16
Registriert: Sa 23. Aug 2008, 14:42
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Nordmende »

Ich habe alles auf einen schlage installiert.
fpc usw. wurden als Abhängigkeiten automatisch mit Lazarus installiert

Unter Code (Quelltext) habe ich als Zielplattform fürs OS auch Linux und bei CPU i386 gewählt....

€ In dem Ordner "/usr/lib/lazarus/lcl/units/i386-linux" ist übrigens nur ein "gtk" Ordner drin.
Das könnte der Grund sein warum gtk 2, qt usw. alle nicht gehen..........

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

es gibt dazu einen WIKI eintrag:
http://wiki.lazarus.freepascal.org/Laza ... 3.B6sen.3F" onclick="window.open(this.href);return false;
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

Nordmende
Beiträge: 16
Registriert: Sa 23. Aug 2008, 14:42
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Nordmende »

Den hab ich schon gesehen (allerdings in englisch)

Bei mir ist der in der FAQ / Wiki besagte ordner **/lazarus/lcl/units/i386-linux allerdings in /usr/lib und nicht in /home/username drin.

Wenn ich in aus /usr/lib nach /home/username verschiebe, meldet Lazarus das der ordner /usr/lib nicht vollständig ist.......

Auch die fpc.cfg Datei ist bei mir nur einmal in /etc vorhanden

Solangsam hab ich alle Tipps schon 52143 ausprobiert und das Problem existiert leider immer noch.....:(

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6771
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Nur eine kleine Frage:
Wie hast du Lazarus & FPC installiert ? Debs ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Nordmende
Beiträge: 16
Registriert: Sa 23. Aug 2008, 14:42
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Nordmende »

Nein, über die Paketverwaltung Pacman in ArchLinux
Also als pkg.tar.gz

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

hmm wieso gtk1? Probiere es doch mal mit gkt2.

Es könnte nichts schaden folgendes zu probieren:
- Lazarus neu erstellen und zwar jeden Eintrag (bis auf Beispiele) auf build+clean stellen, LCL Schnittstelle auf gtk2 stellen
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

Antworten