Pure Basic 5.40 Linux
-
stevie1401
- Beiträge: 705
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Pure Basic 5.40 Linux
Beim Compilieren bekomme ich folgende Meldung unter Linux x64 (Ubuntu)
purebasic.o: In Funktion `PB_EndFunctions':
(.text+0x4c2e2): Nicht definierter Verweis auf `gdk_pixbuf_render_pixmap_and_mask'
collect2: error: ld returned 1 exit status
Mit PB 5.31 funktioniert der Code.
Leider springt der Editor nicht zu einer bestimmten Zeile, so dass ich nicht erkennen kann, was der Linker nicht mag.
Was kann das denn evtl sein?
purebasic.o: In Funktion `PB_EndFunctions':
(.text+0x4c2e2): Nicht definierter Verweis auf `gdk_pixbuf_render_pixmap_and_mask'
collect2: error: ld returned 1 exit status
Mit PB 5.31 funktioniert der Code.
Leider springt der Editor nicht zu einer bestimmten Zeile, so dass ich nicht erkennen kann, was der Linker nicht mag.
Was kann das denn evtl sein?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Pure Basic 5.40 Linux
Einen ausführbaren Code, der das nachvollziehen kann. Eine Versionsnummer des Ubuntu und dann am bestem im engl. Forum als Bug melden.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
stevie1401
- Beiträge: 705
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: Pure Basic 5.40 Linux
Vielen Dank.
Ich habe den Code gefunden:
Ich habe den Code gefunden:
Code: Alles auswählen
Procedure SetWindowBackgroundImage(hWnd.i, hImage.i)
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Linux
betriebssystem="linux"
Protected *Background
Protected FixedBox.i
Protected *Style.GtkStyle
gdk_pixbuf_render_pixmap_and_mask_(hImage, @*Background, 0, 0) ;<<------- der ist es
*Style = gtk_style_new_()
*Style\bg_pixmap[0] = *Background
FixedBox = g_list_nth_data_(gtk_container_get_children_(gtk_bin_get_child_(hWnd)), 0)
gtk_widget_set_style_(FixedBox, *Style)
CompilerCase #PB_OS_Windows
betriebssystem="windows"
Protected hBrush = CreatePatternBrush_(hImage)
If hBrush
SetClassLongPtr_(hWnd, #GCL_HBRBACKGROUND, hBrush)
InvalidateRect_(hWnd, 0, #True)
UpdateWindow_(hWnd)
EndIf
CompilerCase #PB_OS_MacOS
betriebssystem="mac"
CocoaMessage(0, hWnd, "setBackgroundColor:",
CocoaMessage(0, 0, "NSColor colorWithPatternImage:", hImage))
CompilerEndSelect
EndProcedure
Zuletzt geändert von stevie1401 am 21.10.2015 12:30, insgesamt 1-mal geändert.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Pure Basic 5.40 Linux
Also, den Code soweit kürzen, das das Problem auftritt, der Code noch ausführbar istts-soft hat geschrieben:Einen ausführbaren Code, der das nachvollziehen kann.
und alles andere raus. Ist zwar manchmal mühsam, aber erforderlich! 10479 Zeilen
Code wird sich Fred nicht reinziehen
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
stevie1401
- Beiträge: 705
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: Pure Basic 5.40 Linux
Hab die Quelle doch schon gefunden und auch im engl. Forum gepostet.
Gibts es evtl eine Alternative für diesen Code?
Code: Alles auswählen
gdk_pixbuf_render_pixmap_and_mask_(hImage, @*Background, 0, 0) ;<<------- der ist es
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Pure Basic 5.40 Linux
Irgendwie tust Du Dich schwer mit nachvollziehbaren Code
Der läuft unter PB 5.31 aber unter 5.40 nicht, kannste also so im engl. Posten, damit kann Fred dann schon eher
was anfangen.
Gruß
Thomas
Code: Alles auswählen
EnableExplicit
Procedure SetWindowBackgroundImage(hWnd.i, hImage.i)
Protected *Background
Protected FixedBox.i
Protected *Style.GtkStyle
gdk_pixbuf_render_pixmap_and_mask_(hImage, @*Background, 0, 0) ;<<------- der ist es
*Style = gtk_style_new_()
*Style\bg_pixmap[0] = *Background
FixedBox = g_list_nth_data_(gtk_container_get_children_(gtk_bin_get_child_(hWnd)), 0)
gtk_widget_set_style_(FixedBox, *Style)
EndProcedure
OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "")
CreateImage(0, 800, 600, 24, $FF0000)
SetWindowBackgroundImage(WindowID(0), ImageID(0))
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
was anfangen.
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- NicTheQuick
- Ein Admin
- Beiträge: 8820
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Pure Basic 5.40 Linux
Du kannst in den Compileroptionen auf GTK2 zurückschalten. Der obige Code ist nicht mit GTK3 kompatibel. Sicherlich kann man auch einen neuen Code dafür schreiben, ich bin da aber leider gerade nicht wirklich drin.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Pure Basic 5.40 Linux
Danke NicTheQuick, habs auch gerade gemerkt.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Pure Basic 5.40 Linux
Habe das hier gefunden...
https://forum.ubuntuusers.de/topic/bitt ... s-semi-tr/
Im letzten Beitrag
https://forum.ubuntuusers.de/topic/bitt ... s-semi-tr/
Im letzten Beitrag
Vielleicht kann das jemand auf PB umsetzenHallo Leute
Hier kommt die Auflösung.
Wenn man im Netz nach diesem Thema Googled kriegt man 157 richtig komplizierte Lösungen, mit cairo und eposed events usw präsentiert. Alles Unfug.
Meine Erfahrung sagt: Wenn du unter GTK,für ein Problem, mehr als 10 Zeilen brauchst, bist du auf dem Falschen Weg.
Die Nummer ist eigentlich ganz einfach.
Window erzeugen: window = gtk_window_new(GTK_WINDOW_POPUP) ;
Layout erzeugen: layout = gtk_layout_new(NULL, NULL);
Layout ans Window hängen : gtk_container_add(GTK_CONTAINER (window), layout);
Layout Anzegen: gtk_widget_show(layout); Fragt mich nich warum, is einfach so
Irgendwie ein Bildchen erzeugeng: z.B. mit: pixbuf = gdk_pixbuf_get_from_window(root_window,0,0,width,height) ;
Bildchen in GtkImage umwandeln: image = gtk_image_new_from_pixbuf(pixbuf);
Bildchen dem Layout hinzufügen: gtk_layout_put(GTK_LAYOUT(layout), image, 0, 0);
Den ganzen Quatsch den man anzeigen will, wie üblich mit Tables und Boxen u.s.w. zusammenbasteln.
Den Kram nicht ans Window sondern ans layout hängen: gtk_layout_put(GTK_LAYOUT(layout),table,1,1) ;
Den ganzen Rabisch anzeigen: gtk_widget_show_all(window) ;
Live can be easy
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: Pure Basic 5.40 Linux
Ich habe eine Lösung für Linux gefunden, die ohne Änderung mit Gtk2 und Gtk3 in PB 5.31 und PB 5.40 im ASCII- und Unicode-Modus funktioniert. Ich habe sie in den zugehörigen Original-Threads vorgestellt:
Englisches Forum (reine Linux-Lösung)
Deutsches Forum (Multiplattform-Lösung)
Englisches Forum (reine Linux-Lösung)
Deutsches Forum (Multiplattform-Lösung)