Lazarus 2.0.6 Installationsproblem

Für Installationen unter Windows
HobbyProgrammer
Beiträge: 46
Registriert: Di 29. Okt 2019, 12:51
OS, Lazarus, FPC: Host: Debian Buster 64bit, VM Ubuntu 18.04 64bit , Lazarus 2.0.10 , Fpc 3.2.0
CPU-Target: Core i7-9750H
Wohnort: Deutschland , Baden-Württemberg

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von HobbyProgrammer »

Ich habe Lazarus 2.0.4 in einer Windows 7 32bit VM installiert, ohne Probleme. Die IDE lässt sich kompilieren und auch zusätzliche Packages aus dem Online Repository.

sstvmaster
Beiträge: 355
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: OS: Windows 10 | Lazarus: 2.0.8 + Fixes + Trunk 32bit
CPU-Target: 32Bit
Wohnort: Dresden

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von sstvmaster »

LG Maik

wp_xyz
Beiträge: 3332
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von wp_xyz »

Muss gestehen, dass es mir noch nie gelungen ist, die IDE selbst zu debuggen, vermutlich weil ich immer zu früh aufgebe und die Probleme nicht zu tiefgehend waren, als dass ich sie nicht auf die folgende andere Art hätte lösen können (für Windows):
  • Füge zur "uses"-Zeile der Unit, die du debuggen willst, die Unit "lazlogger" hinzu
  • Schreibe deine Protokoll-Ausgaben als "DebugLn(..)" (analog zu WriteLn, allerdings nur mit Strings, die mit + verkettet werden müssen, nicht mit Komma) in den Quelltext.
  • Kopiere die Verknüpfung auf dem Desktop, mit der du Lazarus startest, und hänge sowas wie "--debug-log=d:\laz-debug-log.txt" an die Kommandozeile; dies bewirkt, dass die per DebugLn gemachten Ausgaben in die hinter debug-log genannte Datei geschrieben werden.
  • Ich habe noch zwei weitere Verküpfungen auf dem Desktop: Eine, die die Log-Datei in den System-Editor lädt, und eine andere, die die Log-Datei löscht - denn jeder Programmstart fügt seinen Output an die bestehende Log-Datei hinten an, das wird im Lauf der Zeit unübersichtlichtlich
  • Starte dann Lazarus über die neue Verküpfung und arbeite damit, bis der Fehler auftritt. Beende Lazarus, schaue die Log-Datei ein. Aber Achtung: auch andere Programmteile schreibe in die Log-Datei, es ist manchmal schwer, die aktuellen Ausgaben zu finden, du könntest sie zusätzlich z.B. mit einem vorangestellten '******' kennzeichnen.
  • Hinterher alles wieder rückgängig machen (oder svn revert)
  • Wenn du das öfter machen willst, ist es sinnvoll, die Lazarus-Verknüpfung für die Log-Ausgabe auf dem Desktop zu behalten und mit einem speziellen Icon zu kennzeichnen. Ally hat dafür eine Menge neuer Icons gezeichnet, die auf https://sourceforge.net/p/lazarus-ccr/s ... laz_icons/ zu finden sind.

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von MmVisual »

Hallo Maik,

Ich denke Du hast mal wieder voll ins schwarze getroffen. Ja dieses neue MAKE Tool geht nicht mehr.

Mein Test:
Ich habe mal in Lazarus etwas geändert, die Routine "run()" wo ich heute schon mal geschrieben hatte habe ich so angepasst damit alle wichtigen Parameter mit in eine Textdatei geschrieben werden:

Code: Alles auswählen

 function Run(CurTitle: string): TModalResult;
  Var sl: TStringList;
  begin
    sl := TStringList.Create;
    sl.Add(Cmd);
    sl.Add(CurTitle);
    sl.Add(ClassName);
    sl.Add(EnvironmentOptions.GetParsedLazarusDirectory);
    sl.Add(Executable);
    sl.Add(fWorkingDir);
    sl.Add(MergeCmdLineParams(CmdLineParams));
    sl.Add('~~~~~');
    sl.AddStrings(EnvironmentOverrides);
    sl.SaveToFile('C:\Temp\mm.txt');
    sl.Free;
    Exit(mrOK);
    AddCmdLineParam(Cmd,false);
    Tool:=ExternalToolList.Add(CurTitle);
    Tool.Reference(Self,ClassName);
    try
      Tool.Data:=TIDEExternalToolData.Create(IDEToolCompileIDE,'lazarus',
        AppendPathDelim(EnvironmentOptions.GetParsedLazarusDirectory)+'lazarus.pp');
      Tool.FreeData:=true;
      Tool.Process.Executable:=Executable;
      Tool.AddParsers(SubToolFPC);
      Tool.AddParsers(SubToolMake);
      Tool.Process.CurrentDirectory:=fWorkingDir;
      Tool.EnvironmentOverrides:=EnvironmentOverrides;
      Tool.CmdLineParams:=MergeCmdLineParams(CmdLineParams);
      Tool.Execute;
      Tool.WaitForExit;
      if Tool.ErrorMessage='' then
        exit(mrOk)
      else
        exit(mrCancel);
    finally
      Tool.Release(Self);
    end;
  end


Heraus kommt dann das:

Code: Alles auswählen

idepkg
IDE erstellen
TLazarusBuilder
C:\lazarus\
C:\lazarus\fpc\3.0.4\bin\x86_64-win64\make.exe
C:\lazarus\
-w
~~~~~
LCL_PLATFORM=win32
LANG=en_US
PP=C:\lazarus\fpc\3.0.4\bin\x86_64-win64\fpc.exe
OPT="@C:\Users\mm\AppData\Local\lazarus\idemake.cfg"


Dementsprechend sollte die Option "OPT=" mit dem korrekten Parameter übergeben worden sein, jedoch das neue MAKE kann das wohl nicht lesen.

....mein Lazarus habe ich wohl nun kaputt gefummelt, aber immerhin kamen diese Zeile raus. :mrgreen:

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von MmVisual »

Der nächste Test war alle Dateien von "C:\lazarus\fpc\3.0.4\bin\x86_64-win64" aus der V1.8.4 zu ersetzen

Ergebnis: Lazarus V2.0.4 kann immer noch nicht übersetzen.

Hm...

Also an dem Make Tool liegt es doch nicht. Das scheint ja dann doch richtig zu sein.

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von MmVisual »

Und nun bin ich her gegangen und habe das gleiche mit Lazarus 1.8.4/64 gemacht, Datei "buildlazdialog.pas" angepasst:

Code: Alles auswählen

  function Run(CurTitle: string): TModalResult;
  var
    Params: String;
    sl: TStringList;
  begin
    sl := TStringList.Create;
    sl.Add(Cmd);
    sl.Add(CurTitle);
    sl.Add(ClassName);
    sl.Add(EnvironmentOptions.GetParsedLazarusDirectory);
    sl.Add(Executable);
    sl.Add(fWorkingDir);
    sl.Add(Params);
    sl.Add('~~~~~');
    sl.AddStrings(EnvironmentOverrides);
    sl.SaveToFile('C:\Temp\mm.txt');
    sl.Free;
    Params:=UTF8Trim(CmdLineParams,[]);
    if fMacros<>nil then
      fMacros.SubstituteStr(Params);
    if Params<>'' then
      Params:=Cmd+' '+Params
    else
      Params:=Cmd;
    Tool:=ExternalToolList.Add(CurTitle);
    Tool.Reference(Self,ClassName);
    try
      Tool.Data:=TIDEExternalToolData.Create(IDEToolCompileIDE,'lazarus',
        AppendPathDelim(EnvironmentOptions.GetParsedLazarusDirectory)+'lazarus.pp');
      Tool.FreeData:=true;
      Tool.Process.Executable:=Executable;
      Tool.AddParsers(SubToolFPC);
      Tool.AddParsers(SubToolMake);
      Tool.Process.CurrentDirectory:=fWorkingDir;
      Tool.EnvironmentOverrides:=EnvironmentOverrides;
      Tool.CmdLineParams:=Params;
      Tool.Execute;
      Tool.WaitForExit;
      if Tool.ErrorMessage='' then
        exit(mrOk)
      else
        exit(mrCancel);
    finally
      Tool.Release(Self);
    end;
  end;   


Das Ergebnis in der Textdatei sieht dann so aus:

Code: Alles auswählen

idepkg
IDE erstellen
TLazarusBuilder
C:\lazarus\
C:\lazarus\fpc\3.0.4\bin\x86_64-win64\make.exe
C:\lazarus\
 
~~~~~
LCL_PLATFORM=win32
LANG=en_US
PP=C:\lazarus\fpc\3.0.4\bin\x86_64-win64\fpc.exe
OPT=@C:\Users\mm\AppData\Local\lazarus\idemake.cfg
 

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von MmVisual »

Das Ergebnis warum es bei Lazarus 2.0.4 nicht klappen mag:

Die Zeilen sind unterschiedlich:
V1.8.4:

Code: Alles auswählen

OPT=@C:\Users\mm\AppData\Local\lazarus\idemake.cfg

V2.0.4:

Code: Alles auswählen

OPT="@C:\Users\mm\AppData\Local\lazarus\idemake.cfg"


Also die " mag das Make Tool nicht.

Ich hoffe das hilft euch weiter...

Grüße Markus

Edit:
Bei Lazarus 1.8.4 sah diese Routine so aus, sieht zwar nicht so doll aus aber hat besser funktioniert (buildlazdialog.pas):

Code: Alles auswählen

procedure TLazarusBuilder.AppendExtraOption(const aOption: string; EncloseIfSpace: boolean);
begin
  if aOption='' then exit;
  if fExtraOptions<>'' then
    fExtraOptions:=fExtraOptions+' ';
  if EncloseIfSpace and (Pos(' ',aOption)>0) then
    fExtraOptions:=fExtraOptions+'"'+aOption+'"'
  else
    fExtraOptions:=fExtraOptions+aOption;
  //DebugLn(['AppendExtraOption ',fExtraOptions]);
end;


Ab V2.0.x wurde diese Funktion angepasst, was leider nicht mehr richtig funktioniert:

Code: Alles auswählen

procedure TLazarusBuilder.AppendExtraOption(const aOption: string; AutoQuote: boolean);
begin
  if aOption='' then exit;
  if fExtraOptions<>'' then
    fExtraOptions:=fExtraOptions+' ';
  if AutoQuote then
    fExtraOptions:=fExtraOptions+AnsiQuotedStr(aOption,'"')
  else
    fExtraOptions:=fExtraOptions+aOption;
  //DebugLn(['AppendExtraOption ',fExtraOptions]);
end;   


Bitte behebt den Bug. Jetzt müsste es für euch ja leicht sein :D

wp_xyz
Beiträge: 3332
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von wp_xyz »

Aber wieso tritt das Problem bei mir nicht auf? Weder mit 2.0.4 32-bit noch mit 64-bit. Win 10.

Was ist dein Betriebssystem? Kann es sein, dass hier ein inkompatibles MAKE gefunden wird? Was steht unter "Werkzeuge" > "Einstellungen" > "Dateien" > "Pfad zum Make-Programm"? Bei mir: $Path($(CompPath))\make.exe. Und unter "Compiler-Dateiname (z.B. fpc.exe)"? Bei mir: D:\lazarus204_fpc304\fpc\3.0.4\bin\i386-win32\fpc.exe - das ist der FPC, der mit Laz 2.0.4 installiert wurde.

Michl
Beiträge: 2340
Registriert: Di 19. Jun 2012, 12:54

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von Michl »

MmVisual hat geschrieben:Das Ergebnis in der Textdatei sieht dann so aus:

Code: Alles auswählen

...
    C:\lazarus\fpc\3.0.4\bin\x86_64-win64\make.exe
Das ist erstmal richtig. Aber wird dieses MAKE auch genutzt?

Starte einfach mal unter Windows "cmd" und gib dort "make" ein. Wird dort ein MAKE ausgeführt?

PS: Ich kann das hier leider nicht nachstellen. Bei mir kompiliert Lazarus 2.0.4 64bit problemlos. Allerdings nutze ich eine Secondary Installation. Ich könnte mir vorstellen, daß da der Hase im Pfeffer liegt.
PS2: Du könntest als Startparameter eine "debug.log" festlegen und diese hier mal posten. z.B.: "--debug-log=C:\lazarus\debug.txt"

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 667
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.11 FPC 3.2)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von fliegermichl »

Du kannst mit

Code: Alles auswählen

 
where make.exe
 


herausfinden welche make.exe in %PATH% als erstes gefunden wird

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von MmVisual »

Vielen Dank erst mal für die Unterstützung und die vielen Tipps.
Ich habe alles gemacht und hier wieder die Screenshots davon.

Die CMD.EXE mit den Befehlen "path", "make" und "where make.exe" ausgeführt:
Bild20.png


Die Einstellungen "Datei" vom Lazarus (habe ich nicht verändert, ist so wie von der Installation):
Bild21.png


Von der Lazarus.exe habe ich eine Verknüpfung angelegt und den Start-Parameter angefügt:
Bild22.png
Bild22.png (6.28 KiB) 1766 mal betrachtet


Und darüber das Lazarus gestartet, danach "Werkzeuge" -> "Kompilliere Lazarus mit Profil: Normale IDE" ausgewählt, danach Lazarus beendet:

Code: Alles auswählen

Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] PrimaryConfigPath="C:\Users\mm\AppData\Local\lazarus"
Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] SecondaryConfigPath="C:\lazarus"
Looking for code tools config file:  "C:\Users\mm\AppData\Local\lazarus\codetoolsoptions.xml"
Hinweis: CodeTools-Konfigurationsdatei nicht gefunden - verwende Voreinstellungen
Hint: (lazarus) [TBuildManager.SetBuildTarget] Old=x86_64-win64-win32 New=x86_64-win64-win32 Changed: OS/CPU=True LCL=False
NOTE: help options config file not found - using defaults
InitOpenedProjectFile select form in designer: ConfigureBuildLazarusDlg:TConfigureBuildLazarusDlg TDesigner
Hint: [TPCTargetConfigCache.NeedsUpdate] TargetOS="" TargetCPU="" Options="-FrC:\lazarus\components\codetools\fpc.errore.msg" compiler file changed "C:\lazarus\fpc\3.0.4\bin\x86_64-win64\fpc.exe" FileAge=1325662982 StoredAge=0
Hint: [TPCTargetConfigCache.NeedsUpdate] C:\lazarus\fpc\3.0.4\bin\x86_64-win64\fpc.exe TargetOS= TargetCPU= CompilerOptions=-FrC:\lazarus\components\codetools\fpc.errore.msg ExtraOptions=-FrC:\lazarus\components\codetools\fpc.errore.msg PATH=C:\Program Files\Common Files\Siemens\Automation\Simatic OAM\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;D:\WinARM\make-tools\bin;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Skype\Phone\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\;C:\PostgreSQL\pg11\bin;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin
Hint: (lazarus) [RunTool] "C:\lazarus\fpc\3.0.4\bin\x86_64-win64\fpc.exe" "-iWTOTP" "-FrC:\lazarus\components\codetools\fpc.errore.msg" "-FrC:\lazarus\components\codetools\fpc.errore.msg"
Hint: (lazarus) [RunTool] "C:\lazarus\fpc\3.0.4\bin\x86_64-win64\fpc.exe" "-va" "compilertest.pas" "-FrC:\lazarus\components\codetools\fpc.errore.msg" "-FrC:\lazarus\components\codetools\fpc.errore.msg"
Hint: [TPCTargetConfigCache.Update] has changed
Note: (lazarus) renamed file "C:\lazarus\lazarus.exe" to "C:\lazarus\lazarus.old.exe"
Info: (lazarus) Execute Title="IDE erstellen"
Info: (lazarus) Working Directory="C:\lazarus\"
Info: (lazarus) Executable="C:\lazarus\fpc\3.0.4\bin\x86_64-win64\make.exe"
Info: (lazarus) Param[0]="-w"
Info: (lazarus) Param[1]="idepkg"
LAZARUS END - cleaning up ...
Hint: (lazarus) [TMainIDE.Destroy] B  -> inherited Destroy... TMainIDE
Hint: (lazarus) [TMainIDE.Destroy] END
 


In diesem Log steht die Zeile "renamed file .... lazarus.old.exe" aber wenn ich unter C:\Lazarus\ schaue gibt es da kein "lazarus.old.exe" ?
Bild23.png


Im Ordner "C:\lazarus\fpc\3.0.4\bin\x86_64-win64" existiert die "make.exe" vom 04.08.2019 01:11

Wenn ich in der Kommandozeile in den Ordner wechsle und dann "make" und "make --version" eingebe:

Code: Alles auswählen

C:\lazarus\fpc\3.0.4\bin\x86_64-win64>make
make: *** No targets specified and no makefile found.  Stop.
 
C:\lazarus\fpc\3.0.4\bin\x86_64-win64>make --version
GNU Make 3.80
Copyright (C) 2002  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
 


Im nächsten Schritt würde ich gerne mal das linken von Lazarus selbst manuell über Kommandozeile und dem make ausführen. In welchem Verzeichnis muss ich dazu sein und welchen Text muss ich dazu in der Kommanozeile eingeben, damit das make das Linken ausführt?
Zuletzt geändert von MmVisual am Mi 30. Okt 2019, 13:29, insgesamt 1-mal geändert.

wp_xyz
Beiträge: 3332
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von wp_xyz »

Dann ist diese Kompilierung erfolgreich durchgelaufen? Ich sehe zumindest keine Fehlermeldung. Dafür spricht auch, dass lazarus.ole.exe fehlt, denn diese Kopie es alten Lazarus wird vor Beginn der Kompilierung angelegt und nach erfolgreichem Abschluss wieder gelöscht - sie bleibt nur vorhanden, wenn die Kompilierung fehlschlägt, und hilft nach Rück-Umbenennung wieder zu einem lauffähigen System.

Die Antwort auf die Frage nach dem Betriebssystem steht noch aus. Es scheint nicht Win10 zu sein, denn den historischen Win95-Look kriegt man da nicht mehr so einfach hin.

MmVisual
Beiträge: 1127
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3)
CPU-Target: 32/64Bit

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von MmVisual »

Win7/64

Das kompilieren lief auch durch, nur das Linken nicht:
IDE erstellen: Exit code 2, Fehler: 1
Fatal: Unable to open file C:UsersmmAppDataLocallazarusidemake.cfg -dx86_64

Michl
Beiträge: 2340
Registriert: Di 19. Jun 2012, 12:54

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von Michl »

MmVisual hat geschrieben:Win7/64
Nutze ich auch. Habe eben mal 1.8.4 unter C:\lazarus als Standardinstallation installiert und danach 2.0.4 darüber. Ich kann problemlos danach die IDE neu kompilieren.

Nur so als Gedanke. Wenn die .exe nicht erstellt werden kann, vielleicht verhindert dies ein Virenscanner und nur die Fehlermeldung ist irreführend?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

wp_xyz
Beiträge: 3332
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus 2.0.4 Installationsproblem

Beitrag von wp_xyz »

Ich habe kein Win7 für 64-Bit. Auf der 32-Bit Version dagegen konnte ich Laz 2.0.4 problemlos installieren und auch neu bauen, ich folgte dabei den Schritten, die du weiter oben aufgeschrieben hast.

Bin jetzt ziemlich ratlos...

Versuche probehalber die 32-Bit-Version von Lazarus auf dem 64-Bit Win-7 zu installieren - vielleicht verhalten sich da die Tools wie make unter 32-bit anders? (Wobei ich aber unter Win 10 auch die 64-Bit-Version von Laz 2.0.4 problemlos neu bauen kann).

Dann noch der übliche Verdächtige, der Virenscanner: Nimm das Lazarus-Installationsverzeichnis und den Ordner mit all deinen Projekten (inkl aller Unterordner) in die Ausnahme-Liste des Virenscanners auf. Der hat mir schon mal alle möglichen fpc-Tools gelöscht.

P.S.
Michl war schneller...

Antworten