PB 5.60 32 Bit geht nicht

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Joshua314
Beiträge: 115
Registriert: 06.04.2005 22:44

PB 5.60 32 Bit geht nicht

Beitrag von Joshua314 »

Hallo Zusammen,

ich habe jetzt mit meinem Kollegen 2 Abende versucht Purebasic auf Ubuntu 16.04 und 16.10 32 Bit zum laufen zu bekommen.

Das Programm selbst läuft auf Windows.
Besteht aus mehrenen Teilen und greift direkt auf den FDTI D2xx Treiber zu. Sprich auf eine so. (Auch 32Bit)
Wie schon beschreiben auf Windows rennt alles.

Ziel ist es auf eben einen Kleinen Linux Rechner das ganze zum laufen zu bekommen.

gtk2 ist eingetragen. Alles was ich irgend welchen Foren gefunden habe, habe ich nachinstalliert.

Ich bekomme in der IDE beim laufen lassen immer
Segmentation violation ..... mit Grüße by Fred V5.6 Revision 1808

Wenn ich das Programm Compiliere, startet es ohne Menü. läuft ca. 3 Sekunden und bleibt dann stehen.


Gestartet werden 3 Threads. ein wenig Oberfläche und die SO von FTDI wird aufgemacht. Mehr nicht
Kann es sein, dass Purebasic nicht mehr zu gebrauchen ist auf Linux ???
Wenn ich in den Foren lese, was da alles für Vorschläge gemacht werden... bekomme ich langsam das Gefühl, dass es so ist.

Meine Frage an euch Linux Leute. Wem darf ich mal auf PM meinen Source senden?

Bitte mal Testen ob Ihr den zum laufen bekommt.

Gruß Thomas
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: PB 5.60 32 Bit geht nicht

Beitrag von mk-soft »

Habe noch nicht so viel mit Linux gemacht. aber meine Tools liefen auch immer unter Linux ohne Probleme.
Kann ja mal rein schauen.

Ich habe auf meinen Mac diverse Linux Versionen am laufen...
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: PB 5.60 32 Bit geht nicht

Beitrag von Kukulkan »

Joshua314 hat geschrieben: Gestartet werden 3 Threads. ein wenig Oberfläche und die SO von FTDI wird aufgemacht. Mehr nicht
Immer wenn ich das lese, gehen bei mir die Alarmglocken an. Wir machen auch viel mit Threads und das läuft unter WIndows, Linux und Mac. Aber es gibt eine Regel die man unbedingt einhalten muss:
Im Thread darf absolut nichts mit GUI oder Gadgets gemacht werden. Keine Event-Abfragen, keine Gadgets verändern und nix an den Fenstern drehen. Also, wenn dein Thread auch nur ein SetGadgetText() aufruft oder sonstwas an der GUI macht, dann klappt das evtl. noch unter Windows, aber keinesfalls unter Linux und vermutlich auch nicht auf dem Mac.

Bitte schau nach, ob in irgendeinem Code aus dem Thread was mit der GUI gemacht wird.

Ach ja, wenn Du DLL/SO im Main Thread öffnest und dann im Thread die Funktionen aufrufst, kann es auch schnell Probleme geben. Kommt aber auf die DLL/SO an (ThreadSafe?)... Notfalls die lib im Thread öffnen, benutzen und auch schließen.

Und immer gut aufpassen, ob das Programm auch "ThreadSafe" compiliert wird (PB-Option in der IDE und beim Compiler). Bitte lies auch unbedingt die Hilfe zu mit "Threaded" definierten Variablen. Auch wichtig: Bei Filesystem-Zugriffen oder auch Netzwerk-Befehlen sind evtl. Mutex nötig, um die Zugriffe zu koordinieren. Das wird gerne mal vergessen (unabhängig von der Programmiersprache). Auch hierfür das Handbuch mal lesen.

Grüße,

Kukulkan

PS. Wir schreiben alle GUI-Ergebnisse aus dem Thread in einen Stack (LinkedList, mit Mutex koordiniert) und arbeiten alles im Main-Thread ab. So haben wir das stabil hinbekommen.
Joshua314
Beiträge: 115
Registriert: 06.04.2005 22:44

Re: PB 5.60 32 Bit geht nicht

Beitrag von Joshua314 »

Kukulkan hat geschrieben:
Joshua314 hat geschrieben: Gestartet werden 3 Threads. ein wenig Oberfläche und die SO von FTDI wird aufgemacht. Mehr nicht
Immer wenn ich das lese, gehen bei mir die Alarmglocken an. Wir machen auch viel mit Threads und das läuft unter WIndows, Linux und Mac. Aber es gibt eine Regel die man unbedingt einhalten muss:
Im Thread darf absolut nichts mit GUI oder Gadgets gemacht werden. Keine Event-Abfragen, keine Gadgets verändern und nix an den Fenstern drehen. Also, wenn dein Thread auch nur ein SetGadgetText() aufruft oder sonstwas an der GUI macht, dann klappt das evtl. noch unter Windows, aber keinesfalls unter Linux und vermutlich auch nicht auf dem Mac.

Bitte schau nach, ob in irgendeinem Code aus dem Thread was mit der GUI gemacht wird.

Ach ja, wenn Du DLL/SO im Main Thread öffnest und dann im Thread die Funktionen aufrufst, kann es auch schnell Probleme geben. Kommt aber auf die DLL/SO an (ThreadSafe?)... Notfalls die lib im Thread öffnen, benutzen und auch schließen.

Und immer gut aufpassen, ob das Programm auch "ThreadSafe" compiliert wird (PB-Option in der IDE und beim Compiler). Bitte lies auch unbedingt die Hilfe zu mit "Threaded" definierten Variablen. Auch wichtig: Bei Filesystem-Zugriffen oder auch Netzwerk-Befehlen sind evtl. Mutex nötig, um die Zugriffe zu koordinieren. Das wird gerne mal vergessen (unabhängig von der Programmiersprache). Auch hierfür das Handbuch mal lesen.

Grüße,

Kukulkan

PS. Wir schreiben alle GUI-Ergebnisse aus dem Thread in einen Stack (LinkedList, mit Mutex koordiniert) und arbeiten alles im Main-Thread ab. So haben wir das stabil hinbekommen.
huppp Deine beschriebenen Fallen mit der GUI mache ich alle... Also Umschreiben.. melde mich wenn ich es umgeschrieben habe.

Gruß Thomas
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: PB 5.60 32 Bit geht nicht

Beitrag von Kukulkan »

Unbedingt vorher das hier lesen:

FAQ: Threads in PB
http://purebasic.fr/german/viewtopic.php?f=9&t=18374

__________________________________________________
Domain angepasst
24.05.2017
RSBasic
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: PB 5.60 32 Bit geht nicht

Beitrag von NicTheQuick »

Kukulkan hat geschrieben:Unbedingt vorher das hier lesen:

FAQ: Threads in PB
http://forums.purebasic.com/german/view ... =9&t=18374
Wie kommst du auf diese Domain? Die korrekte wäre http://www.purebasic.fr/german/viewtopi ... =9&t=18374
Bei deiner funktionieren auch die Cookies nicht korrekt.
Bild
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: PB 5.60 32 Bit geht nicht

Beitrag von Kukulkan »

Komisch. Meine Bookmarks sind auch auf die richtige neue Domain. Da ich mit Google nach dem passenden Artikel gesucht hab, hat wohl Google die alte Domain geliefert.

Danke für den Hinweis! Muss ich in Zukunft drauf achten :-)
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: PB 5.60 32 Bit geht nicht

Beitrag von mk-soft »

Das mit der GUI aus Threads zu bearbeiten geht unter Mac und Linux nicht.

Dafür habe ich extra ein Modul veröffentlich um Gadgets aus Threads zu füllen und zu ändern.
Link: http://www.purebasic.fr/english/viewtop ... 12&t=66180

Um die Anforderung ein Fenster zu öffnen kann man dieses mit der Funktion SendEvent(...) lösen.

P.S. In Threads darf man auch nicht WindowEvent() oder WaitWindowEvent() verwenden.
Es sollte sowie so nur einmal im ganzen Programm vorkommen.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
mhs
Beiträge: 224
Registriert: 11.01.2009 16:30
Wohnort: Graben
Kontaktdaten:

Re: PB 5.60 32 Bit geht nicht

Beitrag von mhs »

NicTheQuick hat geschrieben:
Kukulkan hat geschrieben:Unbedingt vorher das hier lesen:

FAQ: Threads in PB
http://forums.purebasic.com/german/view ... =9&t=18374
Wie kommst du auf diese Domain? Die korrekte wäre http://www.purebasic.fr/german/viewtopi ... =9&t=18374
Bei deiner funktionieren auch die Cookies nicht korrekt.
Das ist allerdings nicht sein Fehler, sondern die des hiesigen Webmasters. Die alte Domain sollte per 301er Redirect auf die neue verweisen, dann wäre alles in Ordnung und auch kein Duplicate Content in Google vorhanden.
Michael Hack

Michael Hack Software :: Softwareentwicklung | Webentwicklung | IT-Dienstleistungen
www.michaelhacksoftware.de :: www.mh-s.de :: www.michael-hack.de
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB 5.60 32 Bit geht nicht

Beitrag von RSBasic »

mhs hat geschrieben:Das ist allerdings nicht sein Fehler, sondern die des hiesigen Webmasters.
Das wissen wir, aber da der Super-Administrator dieses Forums nichts macht, können wir nur darauf hinweisen, dass man nur eine Domain verwendet.
Ich verstehe das schon seit Jahren nicht, warum das für ihn nicht wichtig ist. Es ist nur eine Kleinigkeit. Und außerdem wenn das Canonical-Tag mit Weiterleitung nicht richtig gesetzt wird, dann wird es bei Google negativ bewertet.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten