Compilation (Übersetzen) & Installation

(Übersetztung - Stand der EN Seite vom 19.03.2024)

Dieses Dokument erklärt, wie man Gambas aus dem Quellcode baut und installiert.

Dies ist zwar nicht der einfachste Weg, Gambas auf Ihrem System zu installieren (da die meisten Distributionen bereits fertige Gambas-Pakete bereitstellen), es ist aber notwendig,

Anforderungen

Entwicklungspakete

Um Gambas übersetzen zu können, müssen Sie die folgenden Abhängigkeiten und ihre "Entwicklungs"-Pendants installieren.

Der tatsächliche Name der Pakete, die diese Abhängigkeiten enthalten, kann je nach Distribution variieren. Daher finden Sie weitere Informationen auf den distributionsspezifischen Seiten unten.

Komponenten Anforderungen (libraries or pkg-config module)
Übersetzen gcc g++ automake autoconf libtool >= 2.0
Interpreter libffi
gb.compress.bzlib2 libbz2.so
gb.compress.zlib libz.so
gb.compress.zstd libzstd.so >= 1.3.3
gb.cairo cairo >= 1.6.0 cairo-ft >= 1.6.0
gb.crypt libcrypt.so
gb.db.mysql libmysqlclient.so, libz.so
gb.db.odbc libodbc.so
gb.db.postgresql libpq.so
gb.db.sqlite2 libsqlite.so
gb.db.sqlite3 libsqlite3.so
gb.dbus dbus-1
gb.desktop.x11 libXtst.so x11
gb.desktop.gnome gnome-keyring-1
gb.gmp libgmp.so
gb.gsl libgsl.so libgslcblas.so
gb.gtk gtk+-2.0 >= 2.16 cairo >= 1.6.0 cairo-ft >= 1.6.0 gtk+-unix-print-2.0 >= 2.10 librsvg-2.0 >= 2.14.3
gb.gtk.opengl gtkglext-1.0
gb.gtk3 gtk+-3.0 >= 3.4 cairo >= 1.6.0 cairo-ft >= 1.6.0 gtk+-unix-print-2.0 >= 3.4 librsvg-2.0 >= 2.14.3
gb.gtk3.wayland gtk+-3.0 >= 3.4 gdk-wayland-3.0
gb.gtk3.webview gtk+-3.0 >= 3.4 webkit2gtk-4.0 >= 2.20
gb.gtk3.x11 gtk+-3.0 >= 3.4 gdk-x11-3.0
gb.image.io gdk-pixbuf
gb.image.imlib imlib
gb.libxml libxml-2.0
gb.media gstreamer-0.10 >= 0.10.31 gstreamer-interfaces-0.10 >= 0.10.31 für Gambas <= 3.4

gstreamer-1.0 gstreamer-video-1.0 für Gambas >= 3.5
gb.mime gmime-2.6 oder gmime-3.0
gb.ncurses ncurses.so panel.so
gb.net.curl libcurl >= 7.13
gb.openal openal >= 1.13 alure
gb.opengl gb.opengl.glsl libGL.so libGLEW.so
gb.opengl.glu libGLU.so
gb.openssl openssl
gb.pcre libpcre.so
gb.pdf poppler >= 0.5
gb.poppler poppler >= 0.20 poppler-cpp poppler-glib
gb.qt4 QtCore >= 4.5.0 QtGui QtSvg x11
gb.qt4.ext QtCore >= 4.5.0 QtGui Qt3Support x11
gb.qt4.opengl QtCore >= 4.5.0 QtGui QtOpenGL x11 gl
gb.qt4.webkit QtCore >= 4.5.0 QtGui QtNetwork QtDBus QtXml QtWebKit >= 4.5.0
gb.qt4.webview QtCore >= 4.5.0 QtGui QtNetwork QtDBus QtXml QtWebKit >= 4.5.0
gb.qt5 Qt5Core >= 5.3.0 Qt5Gui Qt5Widgets Qt5Svg Qt5PrintSupport
gb.qt5.ext Qt5Core >= 5.3.0 Qt5Gui Qt5Widgets x11
gb.qt5.opengl Qt5Core >= 5.3.0 Qt5Gui Qt5Widgets Qt5OpenGL gl x11

Hinweis: Qt5OpenGL wird nicht benötigt, wenn Ihre Qt-Version >= 5.4.0 ist.
gb.qt5.wayland Qt5Core >= 5.3.0 Qt5Gui Qt5Widgets
gb.qt5.webkit Qt5Core >= 5.3.0 Qt5Gui Qt5Widgets Qt5Network Qt5Xml Qt5WebKit Qt5WebKitWidgets Qt5PrintSupport
gb.qt5.webview Qt5Core >= 5.5.0 Qt5WebEngineWidgets
gb.qt5.x11 Qt5Core >= 5.3.0 Qt5Gui Qt5Widgets Qt5X11Extras x11-xcb
gb.sdl libSDL.so libSDL_ttf.so libGL.so libGLEW.so
gb.sdl.sound libSDL.so libSDL_mixer.so
gb.sdl2 libSDL2-2.0.so libSDL2_image-2.0 libSDL2_ttf-2.0 libGL.so libGLEW.so
gb.sdl2.audio libSDL2-2.0.so libSDL2_mixer-2.0.so
gb.v4l libjpeg.so libpng.so (Video4Linux >= 2.0)
gb.xml.xslt libxml-2.0 libxslt

Andere Anforderungen

Sie müssen das Recht haben, in das Verzeichnis /tmp zu schreiben, sonst wird Gambas nicht funktionieren.

Die folgenden Versionen der GNU-Tools werden ebenfalls zum Bauen benötigt:
  • automake 1.11.1

  • autoconf 2.68

  • libtool 2.4

Das Kompilieren mit älteren Versionen kann funktionieren oder auch nicht!

Herunterladen der Quellen

Es gibt zwei Möglichkeiten, die Gambas-Quellen zu erhalten: das Herunterladen des Release tar-Archivs oder das Abrufen aus dem git-Repository.

Herunterladen des Release tar-Archivs

Das tar-Archiv für die neueste Version kann direkt von der Website heruntergeladen werden, aus dem Abschnitt Download.

Abrufen aus dem git-Repository

Wenn Sie die Entwicklungsversion verwenden möchten, müssen Sie die Quellen aus dem git-Repository abrufen. Außerdem müssen Sie git installieren, um die folgenden Befehle verwenden zu können. Weitere Informationen zur Verwendung des Gitlab Gambas-Repository finden Sie im Git development guide for Gambas

Geben Sie den folgenden Befehl ein, um die letzte Revision der Entwicklungsversion in einem neuen "Gambas"-Verzeichnis abzurufen:

$ git clone --depth=1 https://gitlab.com/gambas/gambas.git

Das Argument --depth=1 bewirkt, dass git nur die letzte Version herunterlädt. Wenn Sie es weglassen, lädt es den gesamten Verlauf der Änderungen am Quellcode herunter, was unnötig ist, wenn Sie nicht vorhaben, zu Gambas beizutragen.

Daher ist es für die meisten Benutzer besser, diese Option zu aktivieren, da dies die Größe des Downloads und die Festplattennutzung verringert.

Sobald der Download abgeschlossen ist, wird ein "Gambas"-Verzeichnis erstellt, das den Quellcode enthält.

Um nach Aktualisierungen zu suchen und diese herunterzuladen, gehen Sie in das gambas-Verzeichnis und verwenden Sie den folgenden Befehl:

$ git pull

Die Quellen werden dann aktualisiert und Sie müssen den Übersetzungs- und Installationsvorgang neu starten, um die letzten Änderungen in Ihr System zu übernehmen.

Paketabhängigkeitslisten und Konfigurationsbefehle für die neueste Version von GitLab

Diese Anweisungen stammen direkt aus der Konfigurationsdatei von GitLab Continuous Integration. Sie funktionieren, außer bei einem Fehler, den Sie direkt überprüfen können im Status der GitLab-Pipelines.

Arch Linux

pacman -Syu --needed --noconfirm alure autoconf automake bzip2 zstd coreutils curl dbus gcc gdk-pixbuf2 git glew glib2 gmime3 gsl gst-plugins-base gstreamer gtk2 gtk3 imlib2 intltool libffi libgl libgnome-keyring mariadb-libs librsvg libsm libxcursor libxml2 libxslt libxtst mariadb make mesa ncurses pcre

pacman -Syu --needed --noconfirm pkg-config poppler poppler-glib postgresql postgresql-libs qt5-svg qt5-x11extras sdl2 sdl2_gfx sdl2_image sdl2_mixer sdl2_net sdl2_ttf sdl_mixer sdl_ttf smpeg sqlite unixodbc v4l-utils xdg-utils zlib gettext qt5-webengine webkit2gtk qt6-svg qt6-webengine mongo-c-driver

./reconf-all

./configure -C --disable-sqlite2 --disable-qt4 --disable-pdf --disable-qt5webkit --disable-gtkopengl

Debian Bullseye (11)

apt-get update && apt-get install -y build-essential g++ automake autoconf libbz2-dev libzstd-dev default-libmysqlclient-dev unixodbc-dev libpq-dev libsqlite3-dev libglib2.0-dev libgtk2.0-dev libcurl4-gnutls-dev libgtkglext1-dev libpcre3-dev libsdl-sound1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libxml2-dev libxslt1-dev librsvg2-dev libpoppler-dev libpoppler-glib-dev libpoppler-private-dev libpoppler-cpp-dev libasound2-dev libdirectfb-dev libxtst-dev libffi-dev libglew-dev libimlib2-dev libv4l-dev libsdl-ttf2.0-dev libgdk-pixbuf2.0-dev linux-libc-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcairo2-dev libgsl-dev libncurses5-dev libgmime-3.0-dev libalure-dev libgmp-dev libgtk-3-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl2-image-dev sane-utils libdumb1-dev libqt5opengl5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev qtbase5-dev qtwebengine5-dev libwebkit2gtk-4.0-dev git libssl-dev libmongoc-dev

./reconf-all

./configure -C --disable-keyring --disable-sqlite2 --disable-qt4 --disable-qt6

Debian Bookworm (12)

apt-get update && apt-get install -y build-essential g++ automake autoconf libbz2-dev libzstd-dev default-libmysqlclient-dev unixodbc-dev libpq-dev libsqlite3-dev libglib2.0-dev libgtk2.0-dev libcurl4-gnutls-dev libgtkglext1-dev libpcre3-dev libsdl-sound1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libxml2-dev libxslt1-dev librsvg2-dev libpoppler-dev libpoppler-glib-dev libpoppler-private-dev libpoppler-cpp-dev libasound2-dev libdirectfb-dev libxtst-dev libffi-dev libglew-dev libimlib2-dev libv4l-dev libsdl-ttf2.0-dev libgdk-pixbuf2.0-dev linux-libc-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcairo2-dev libgsl-dev libncurses5-dev libgmime-3.0-dev libalure-dev libgmp-dev libgtk-3-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl2-image-dev sane-utils libdumb1-dev libqt5opengl5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev qtbase5-dev qtwebengine5-dev libwebkit2gtk-4.0-dev git libssl-dev qt6-base-dev qt6-webengine-dev qt6-svg-dev libmongoc-dev

./reconf-all

./configure -C --disable-keyring --disable-sqlite2 --disable-qt4

Debian Trixie (13)

apt-get update && apt-get install -y build-essential g++ automake autoconf libbz2-dev libzstd-dev default-libmysqlclient-dev unixodbc-dev libpq-dev libsqlite3-dev libglib2.0-dev libgtk2.0-dev libcurl4-gnutls-dev libpcre2-dev libsdl-sound1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libxml2-dev libxslt1-dev librsvg2-dev libpoppler-dev libpoppler-glib-dev libpoppler-private-dev libpoppler-cpp-dev libasound2-dev libdirectfb-dev libxtst-dev libffi-dev libglew-dev libimlib2-dev libv4l-dev libsdl-ttf2.0-dev libgdk-pixbuf2.0-dev linux-libc-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcairo2-dev libgsl-dev libncurses5-dev libgmime-3.0-dev libalure-dev libgmp-dev libgtk-3-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl2-image-dev sane-utils libdumb1-dev libqt5opengl5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev qtbase5-dev qtwebengine5-dev libwebkit2gtk-4.1-dev git libssl-dev qt6-base-dev qt6-webengine-dev qt6-svg-dev libmongoc-dev

./reconf-all

./configure -C --disable-keyring --disable-sqlite2 --disable-qt4 --disable-gtkopengl

Debian Sid (unstable)

apt-get update && apt-get install -y build-essential g++ automake autoconf libbz2-dev libzstd-dev default-libmysqlclient-dev unixodbc-dev libpq-dev libsqlite3-dev libglib2.0-dev libgtk2.0-dev libcurl4-gnutls-dev libgtkglext1-dev libpcre3-dev libsdl-sound1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libxml2-dev libxslt1-dev librsvg2-dev libpoppler-dev libpoppler-glib-dev libpoppler-private-dev libpoppler-cpp-dev libasound2-dev libdirectfb-dev libxtst-dev libffi-dev libglew-dev libimlib2-dev libv4l-dev libsdl-ttf2.0-dev libgdk-pixbuf2.0-dev linux-libc-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcairo2-dev libgsl-dev libncurses-dev libgmime-3.0-dev libalure-dev libgmp-dev libgtk-3-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl2-image-dev sane-utils libdumb1-dev libqt5opengl5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev qtbase5-dev qtwebengine5-dev libwebkit2gtk-4.1-dev git libssl-dev qt6-base-dev qt6-webengine-dev qt6-svg-dev libmongoc-dev

./reconf-all

./configure -C --disable-keyring --disable-qt4 --disable-sqlite2

Ubuntu Lunar (23.04)

apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git g++ automake autoconf libtool libbz2-dev libzstd-dev libmysqlclient-dev unixodbc-dev libpq-dev libsqlite0-dev libsqlite3-dev libglib2.0-dev libgtk2.0-dev libcurl4-gnutls-dev libgtkglext1-dev libpcre3-dev libsdl-sound1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libxml2-dev libxslt1-dev librsvg2-dev libpoppler-dev libpoppler-private-dev libpoppler-glib-dev libpoppler-cpp-dev libasound2-dev libdirectfb-dev libxtst-dev libffi-dev libglew-dev libimlib2-dev libv4l-dev libsdl-ttf2.0-dev libgdk-pixbuf2.0-dev linux-libc-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcairo2-dev libgsl-dev libncurses5-dev libgmime-3.0-dev llvm-dev llvm libalure-dev libgmp-dev libgtk-3-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl2-image-dev sane-utils libdumb1-dev libssl-dev libqt5opengl5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev qtbase5-dev qtwebengine5-dev libwebkit2gtk-4.0-dev libfribidi-dev libmongoc-dev

./reconf-all

./configure -C --disable-keyring --disable-qt4 --disable-qt6

Ubuntu Jammy (22.04)

apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git g++ automake autoconf libtool libbz2-dev libzstd-dev libmysqlclient-dev unixodbc-dev libpq-dev libsqlite0-dev libsqlite3-dev libglib2.0-dev libgtk2.0-dev libcurl4-gnutls-dev libgtkglext1-dev libpcre3-dev libsdl-sound1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libxml2-dev libxslt1-dev librsvg2-dev libpoppler-dev libpoppler-private-dev libpoppler-glib-dev libpoppler-cpp-dev libasound2-dev libdirectfb-dev libxtst-dev libffi-dev libglew-dev libimlib2-dev libv4l-dev libsdl-ttf2.0-dev libgdk-pixbuf2.0-dev linux-libc-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcairo2-dev libgsl-dev libncurses5-dev libgmime-3.0-dev llvm-dev llvm libalure-dev libgmp-dev libgtk-3-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl2-image-dev sane-utils libdumb1-dev libssl-dev libqt5opengl5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev qtbase5-dev qtwebengine5-dev libwebkit2gtk-4.0-dev libfribidi-dev libmongoc-dev

./reconf-all

./configure -C --disable-keyring --disable-qt4 --disable-qt6

Ubuntu Focal (20.04)

apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git g++ automake autoconf libtool libbz2-dev libzstd-dev libmysqlclient-dev unixodbc-dev libpq-dev libsqlite0-dev libsqlite3-dev libglib2.0-dev libgtk2.0-dev libcurl4-gnutls-dev libgtkglext1-dev libpcre3-dev libsdl-sound1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libxml2-dev libxslt1-dev librsvg2-dev libpoppler-dev libpoppler-private-dev libpoppler-glib-dev libpoppler-cpp-dev libasound2-dev libdirectfb-dev libxtst-dev libffi-dev libglew-dev libimlib2-dev libv4l-dev libsdl-ttf2.0-dev libgdk-pixbuf2.0-dev linux-libc-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcairo2-dev libgsl-dev libncurses5-dev libgmime-2.6-dev llvm-dev llvm libalure-dev libgmp-dev libgtk-3-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl2-image-dev sane-utils libdumb1-dev libssl-dev libqt5opengl5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev qtbase5-dev qtwebengine5-dev libwebkit2gtk-4.0-dev libfribidi-dev libmongoc-dev

./reconf-all

./configure -C --disable-keyring --disable-qt4 --disable-qt6

Ubuntu Bionic (18.04)

apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git g++ automake autoconf libtool libbz2-dev libzstd-dev libmysqlclient-dev unixodbc-dev libpq-dev libsqlite0-dev libsqlite3-dev libglib2.0-dev libgtk2.0-dev libcurl4-gnutls-dev libgtkglext1-dev libpcre3-dev libsdl-sound1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libxml2-dev libxslt1-dev librsvg2-dev libpoppler-dev libpoppler-private-dev libpoppler-glib-dev libpoppler-cpp-dev libasound2-dev libdirectfb-dev libxtst-dev libffi-dev libqt4-dev libqtwebkit-dev libqt4-opengl-dev libglew-dev libimlib2-dev libv4l-dev libsdl-ttf2.0-dev libgdk-pixbuf2.0-dev linux-libc-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcairo2-dev libgsl-dev libncurses5-dev libgmime-2.6-dev llvm-dev llvm libalure-dev libgmp-dev libgtk-3-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl2-image-dev sane-utils libdumb1-dev libssl-dev libqt5opengl5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev qtbase5-dev qtwebengine5-dev libwebkit2gtk-4.0-dev libfribidi-dev libmongoc-dev

./reconf-all

./configure -C --disable-keyring --disable-qt6

Ubuntu Xenial (16.04)

apt-get update && apt-get install -y build-essential g++ git automake autoconf libtool libbz2-dev libmysqlclient-dev unixodbc-dev libpq-dev libsqlite0-dev libsqlite3-dev libglib2.0-dev libgtk2.0-dev libcurl4-gnutls-dev libgtkglext1-dev libpcre3-dev libsdl-sound1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libxml2-dev libxslt1-dev librsvg2-dev libpoppler-dev libpoppler-glib-dev libpoppler-private-dev libpoppler-cpp-dev libasound2-dev libdirectfb-dev libxtst-dev libffi-dev libqt4-dev libqtwebkit-dev libqt4-opengl-dev libglew-dev libimlib2-dev libv4l-dev libsdl-ttf2.0-dev libgnome-keyring-dev libgdk-pixbuf2.0-dev linux-libc-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcairo2-dev libgsl-dev libncurses5-dev libgmime-2.6-dev llvm-dev llvm libalure-dev libgmp-dev libgtk-3-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl2-image-dev sane-utils libdumb1-dev libssl-dev libqt5opengl5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev qtbase5-dev libwebkit2gtk-3.0-dev libfribidi-dev

./reconf-all

./configure -C --disable-gtk3webview --disable-qt5webview --disable-qt5wayland --disable-zstd --disable-qt6 --disable-mongodb

Ubuntu Trusty (14.04)

apt-get update && apt-get install -y build-essential git g++ automake autoconf libtool libbz2-dev libmysqlclient-dev unixodbc-dev libpq-dev libsqlite0-dev libsqlite3-dev libglib2.0-dev libgtk2.0-dev libcurl4-gnutls-dev libgtkglext1-dev libpcre3-dev libsdl-sound1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libxml2-dev libxslt1-dev librsvg2-dev libpoppler-dev libpoppler-glib-dev libpoppler-private-dev libpoppler-cpp-dev libasound2-dev libdirectfb-dev libxtst-dev libffi-dev libqt4-dev libqtwebkit-dev libqt4-opengl-dev libglew-dev libimlib2-dev libv4l-dev libsdl-ttf2.0-dev libgnome-keyring-dev libgdk-pixbuf2.0-dev linux-libc-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcairo2-dev libgsl0-dev libncurses5-dev libgmime-2.6-dev llvm-dev llvm libalure-dev libgmp-dev libgtk-3-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl2-image-dev sane-utils libdumb1-dev libssl-dev libglu1-mesa-dev libglu1-mesa-dev libglew1.10 libglu1-mesa libgles2-mesa-dev libwebkit2gtk-3.0-dev libfribidi-dev

./reconf-all

./configure -C --disable-qt5 --disable-gtk3webview --disable-gtk3opengl --disable-zstd --disable-qt6 --disable-mongodb

Hinweis: Für die Ubuntu/LinuxMint PPA-Installationsmethode des letzten stabilen Builds
oder täglichen Builds, die nicht kompiliert werden müssen - siehe die Ubuntu Seite.

Alpine

apk add --no-progress -q autoconf automake libtool curl-dev dbus-dev g++ gdk-pixbuf-dev git gmp-dev glew-dev glib-dev gmime-dev gsl-dev gst-plugins-base-dev gstreamer-dev gtk+2.0-dev gtk+3.0-dev imlib2-dev gettext-dev libffi-dev mesa-dev mariadb-dev librsvg-dev libsm-dev libxcursor-dev libxml2-dev libxslt-dev libxtst-dev make ncurses-dev pcre-dev pkgconf poppler-dev postgresql-dev qt5-qtsvg-dev qt5-qtx11extras-dev qt5-qtwebengine-dev sdl2-dev sdl2_image-dev sdl2_mixer-dev sdl2_ttf-dev sqlite-dev unixodbc-dev xdg-utils zlib-dev webkit2gtk-dev qt6-qtsvg-dev qt6-qtwebengine-dev mongo-c-driver-dev

./reconf-all

./configure -C --disable-openal --disable-qt4 --disable-sdl --disable-sdlsound --disable-sqlite2 --disable-v4l --disable-gtkopengl --disable-zstd  --disable-qt5webkit --disable-pdf --disable-keyring

Fedora Latest

dnf install -y libtool libtool-ltdl-devel gcc make autoconf dumb-devel gmime-devel gmime30-devel libffi-devel mariadb-devel postgresql-devel unixODBC-devel sqlite2-devel libsqlite3x-devel libxslt-devel libv4l-devel glew-devel poppler-devel poppler-glib-devel poppler-cpp-devel qt-devel qt5-qtbase-devel qt5-qtbase-private-devel qt5-qtwebengine-devel qt5-qtx11extras-devel qt5-qtsvg-devel SDL_ttf-devel SDL_mixer-devel SDL-devel SDL2_ttf-devel SDL2_mixer-devel SDL2_image-devel SDL2-devel cairo-devel gtk2-devel gtk3-devel imlib2-devel librsvg2-devel qt-webkit-devel qt5-qtwebkit qt5-qtwebkit-devel openal-soft-devel libjpeg-turbo-devel gtkglext-devel gmp-devel libxml2-devel libXtst-devel gsl-devel pcre-devel dbus-devel libcurl-devel alure-devel gstreamermm-devel libgnome-keyring-devel bzip2-devel libzstd-devel webkit2gtk3-devel ncurses-devel qt6-qtbase-devel qt6-qtwebengine-devel qt6-qtsvg-devel mongo-c-driver-devel

./reconf-all

./configure -C --disable-pdf

OpenSuse Leap/Tumbleweed

zypper update -y && zypper install -y libtool gawk gcc glew-devel gmime-devel gtk2-devel gtk3-devel libqt5-qtx11extras-devel libqt5-qtwebengine-devel libQt5Xml-devel libQt5Sql-devel libqt5-qtsvg-devel libQt5Gui-devel libQt5Core-devel libQt5Sql5-postgresql libQt5Sql5-unixODBC libQt5Sql5-mysql libQt5Sql5-sqlite webkit2gtk3-devel libICE-devel libSM-devel unixODBC-devel libzip-devel libzstd-devel libmariadb-devel gsl-devel libopenssl-devel alure-devel postgresql-devel libcurl-devel libSDL_ttf-devel libSDL_mixer-devel libSDL-devel libSDL2_ttf-devel libSDL2_mixer-devel libSDL2_image-devel libSDL2-devel libxslt-devel libv4l-devel librsvg-devel gtkglext-devel libgnome-keyring-devel libjpeg62-devel libpoppler-devel libpoppler-glib-devel imlib2-devel gmp-devel gstreamermm-devel qt6-webenginewidgets-devel qt6-svg-devel qt6-gui-devel qt6-core-devel qt6-openglwidgets-devel

./reconf-all

./configure -C --disable-qt4 --disable-sqlite2 --disable-qt5webkit --disable-pdf --disable-mongodb

Übersetzen und Installieren von Gambas 3

Konfiguration des Quellpakets

Der Übersetzungsvorgang ist derselbe, egal ob Sie die Quellen aus dem tar-Archiv oder aus git heruntergeladen haben.

Wenn Sie sicher sind, dass alles heruntergeladen wurde, geben Sie die folgenden magischen Sätze in eine Shell ein.

'$' steht für Ihre Shell-Eingabeaufforderung, und '...' sind die Meldungen, die während der Konfiguration und Übersetzung ausgegeben werden.
'#' stellt einen Befehl dar, der als Superuser ausgeführt werden muss.

Geben Sie zunächst das Hauptverzeichnis der Quelle an:

$ cd /path/to/source/directory/

Geben Sie das Folgendes ein, um die Konfigurationsskripte zu erstellen:

$ ./reconf-all

Geben Sie dann Folgendes ein, um das aktuelle System zu analysieren und das Paket zu konfigurieren:

$ ./configure -C
...

Wenn eine Bibliothek oder ein Entwicklungspaket fehlt, werden Sie gewarnt, dass einige Komponenten deaktiviert sind.

Hinweis: Wenn Sie möchten, dass ./configure nur Fehlermeldungen und nicht alle Prüfinformationen ausgibt, verwenden Sie das Flag -q (quiet)
$ ./configure -C -q
aber verwenden Sie -q nicht, wenn Sie die Installationsausgabe an das Gambas-Team senden, um Hilfe zu erhalten.

In der Datei INSTALL, die sich im obersten Quellverzeichnis befindet, gibt es weitere spezifische Erläuterungen zu configure. Ich empfehle Ihnen, diese zu lesen.

Übersetzen

Wenn alles ohne Fehler konfiguriert ist, führen Sie diesen Befehl aus, um das Programm zu kompilieren:

$ make -j $(nproc)
...

Das Argument -j legt fest, wie viele "Jobs" auf einmal ausgeführt werden sollen und Ihr Computer kann alle CPU-Kerne nutzen. Die Anweisung $(nproc) gibt die Anzahl der Kerne zurück.

Installation

Wenn alles ohne Fehler übersetzt wird, geben Sie diesen Befehl ein, um alles zu installieren:

Sie müssen "root" sein, um Gambas auf Ihrem System zu installieren.

# su -c "make install"
Password: <Type the root password here>
...

oder

# sudo make install
Password: <Type your password here>
...

Problembehebung

Wenn Sie mehrere aufeinanderfolgende Übersetzungen durchgeführt haben, nachdem Sie beispielsweise den Quellcode aus dem Repository aktualisiert haben und wenn dabei etwas fehlschlägt, können Sie versuchen, die Konfigurationsskripte durch Eingabe des folgenden Befehls neu zu konfigurieren:

$ ./reconf-all

Dann können Sie ./configure -C -q erneut ausführen.

Wenn es nicht funktioniert, muss ich wissen, was genau passiert ist. Geben Sie dazu den folgenden Befehl ein:

# ( ./configure -C; make; make install ) > output.txt 2>&1

Und schicken Sie mir die Datei "output.txt" per E-Mail, zusammen mit allen anderen Details über Ihren Computer und Ihre Distribution, die Sie für nützlich halten.

Eine andere Möglichkeit, wenn Sie einen bestehenden Quellcode-Ordner haben, der zwar übersetzt wurde, aber nach einem Update nicht mehr funktioniert, selbst nachdem Sie ./reconf-all ausgeführt haben, ist, dass es einige Dateien/Bibliotheken gibt, die nicht aktualisiert/neu übersetzt werden.
Sie können versuchen, make clean oder make distclean auszuführen, um Ihren Quellcode-Ordner von allen erstellten Dateien zu säubern, damit alle Dateien von Grund auf neu übersetzt werden.
$ make clean
oder
$ make distclean

Die Entwicklungsumgebung

Die Gambas IDE wurde mit Gambas erstellt. Um diese zu kompilieren und zu verwenden, müssen Sie die folgenden Komponenten übersetzt haben:

Benutzerdefinierte Tools zur Unterstützung des Prozesses

Tools zur Unterstützung bei der Kompilierung/Installation des neuesten Gambas3

Weitere Anleitungen / Installationsoptionen für bestimmte Distributionen und ältere Versionen

A
Arch and Manjaro Linux Arm64
Arch Linux
C
Cygwin
L
Linux Mint
M
Mageia
R
Raspbian
T
Tools zur Unterstützung bei der Kompilierung/Installation des neuesten Gambas3
U
Ubuntu