Ich934 hat geschrieben:Wie schaut es eigentlich grundsätzlich mit der Kompatibilität unter Linux aus? Im Wiki steht ja einiges wegen Ubuntu. Hat das in der Praxis groß Bedeutung oder liefert ihr einfach das alles mit?
Kann mich nicht beschweren, benutze auf meinem Majaro die Version aus den Offiziellen Repositories, ist immer die aktuelle Lazarus und FPC version, brauch also nix nachzuinstallieren/selbst compilen oder so), ist auch direkt mit QT5 gebaut. Die FCL ist super kompatibel, die Unix und BaseUnix Units geben zugriff auf die POSIX API's, und die LCL läuft auch wunderbar (auch wenn wie gesagt manche features abbhängig vom Widgetset sind, und manche widgetsets auch manchmal bugs haben, das sind aber weniger als 1% der LCL komponenten, das allermeiste funktioniert anstandslos). Mit manchen Desktop Umgebungen/Window Managern kommt Lazarus nicht so gut zurecht, so hab ich rausgefunden das bei Cinnamon und der Verwendung von Anchordocking, während dem Dockvorgang Lazarus ab und an Access violations wirft. Da ich mir aber für gewöhnlich einmal die IDE konfiguriere ist das aber kein Problem. Unter OpenSuse hatte ich mit Cinnamon öfter heftige Probleme (Da hat Lazarus zum Teil das gesammte DE eingefroren), das schien aber ein OpenSuse-Cinnamon-Lazarus kombinationsproblem gewesen zu sein, unter Manjaro hab ich deutlich weniger probleme. Unter KDE und Gnome hatte ich bislang noch keine Probleme.
Unter Debian basierten Systemen (Debian, Ubuntu, Mint) hat man öfter mal das Problem das es in den Offiziellen (stable) repositories meistens uralt versionen von Lazarus und FPC drin sind, das liegt aber an Debian (ich mein die LLVM version drin ist auch 6, vor ein paar monaten kam 9 raus. Die Version 6 ist 1,5 Jahre alt), weshalb mMn. außerhalb von Servern bei denen Stabilität das wichtigste ist, das erste was man auf Debian, Ubunutu oder Mint machen sollte ist die unstable Repositories aktivieren. Dann bekommt man auch die aktuellste Lazarus version darüber.
Man muss wenn man Software für Linux kompiliert halt auch sicher stellen das auf dem Zielrechner alle Dependencies installiert sind, bei Windows ist das recht simpel da unter Windows sehr viel vom System gestellt wird, aber unter Linux muss man fast alles nachinstallieren (z.B. das richtige Framework für das Widgetset wie QT-5), oder man an sonsten einfach die DLL's mitliefert (das ist aber unter Linux keine sonderlich beliebte Praxis, da es den Paketmanager genau dafür gibt um das zu vermeiden). Da die Packages auf jedem System anders heißen können, kann es manchmal echt eine Qual sein seine Programme bei anderen zum laufen zu bekommen weil man sich denkt: "Auf meinem rechner läufts ja problemlos". Beispiel (das zwar nix mit Lazarus zu tun hat, aber ich demletzt hatte) OpenJDK auf Manjaro: jre11-openjdk, Debian: openjdk-11-jre Opensuse: java-11-openjdk