Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe ein komplexeres C++ Projekt, das cross-platform ist und mit mehreren DLLs für Linux, Windows und OSX gebaut wird. Zum erzeugen der DLLs und Executables nutze ich Scons.

Bei OSX erzeuge ich aus allen gebauten Komponenten eine Application Verzeichnis in dem ich dann alle Resources, DLLs, Executables und Konfigurationsdateien ablege. OSX behandelt dann dieses Verzeichnis als Paket, so dass man die Applikation direkt starten kann.

Bei Linux müsste ich dann ein RPM oder DEB Archiv bauen und die notwendigen Abhängigkeiten zu den DLLs dann über den Paketmanager auflösen lassen.

Wie würde man das sinnvoll bei Windows machen? Ich würde eine MSI Datei bauen und dort auch alle DLLs mit hineingeben.

Ich habe bei dem Projekt Abhängigkeiten zu Qt, Boost, Lapack, SQLite, Postgres und Lua. Ich sehe die Problematik, wenn ich nur das Executable ausgebe, dass der User dann entsprechend alle Abhängigkeiten selbst auflösen muss, das finde ich nicht unbedingt benutzerfreundlich.

Naja du kannst unter Windows genauso alle benötigten DLLs mit in das Verzeichnis der Exe legen damit sie gefunden werden.

Ich habe bei dem Projekt Abhängigkeiten zu Qt, Boost, Lapack, SQLite, Postgres und Lua.

Bei solchen Sachen wäre der saubere Weg aber das dein Setup prüft ob diese Frameworks bereits installiert sind und wenn nicht sie mitinstalliert.

  • Autor

Bei solchen Sachen wäre der saubere Weg aber das dein Setup prüft ob diese Frameworks bereits installiert sind und wenn nicht sie mitinstalliert.

An so etwas habe ich gedacht, aber ich komme aus der Unix- bzw OSX-Ecke und wüsste nicht, wie ich das machen kann. Bei Qt kann man ja fertige Packete runter laden, bei Boost wird es schwieriger, also dann heraus zu bekommen, ob die DLLs schon im System existieren.

Mein Gedanke war eigentlich, dass ich einfach in das Installationspaket einfach alle benötigten DLLs hinein lege, so dass diese passend zum Executable sind. Im schlimmsten Fall sind dann verschiedene DLLs mehrfach vorhanden, da sie aber im Verzeichnis des Executables liegen, sollte es passend sein.

Ok ich hatte Boost bisher noch nie verwendet und hab mal gerade auf deren Homepage geguckt. Da würde ich es tatsächlich so machen das du die Dlls kopierst.

QT scheint das auch so zu handhaben Qt 4.7: Deploying an Application on Windows, obwohl ich mir sicher bin das bei Spielen die QT verwenden auch ein QT Setup bei mir gestartet wurde.

Bei manchen Sachen wirst du aber nicht drum herum kommen das entsprechende Setup mitzuliefern und zu starten oder den Benutzer es vorher selber installieren zu lassen weil das Setup noch mehr macht als nur die Dlls zu kopieren (beim einrichten einer Postgres Datenbank zum Beispiel).

  • Autor

Ich wollte halt bei Windows im Setup den User auswählen lassen, ob die DLLs installiert werden oder eben nicht, d.h. der User kann wenn er möchte auch schon installierte DLLs verwenden (sofern sie dann vom Programm gefunden werden).

Bei OSX ist alles in dem Bundle drin und bei Linux wird es dann über den Paketmanager aufgelöst

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.