Möglichkeiten msvcr120.dll zu linken ohne LGPL(qt community license) zu brechen



  • Hi,

    ich sollte zuerst sagen, dass ich mich mit dem Linken von Anwendungen und mit LGPL Lizensierung (sowie den Möglichkeiten die es dort gibt) leider noch nicht tiefgreifend vertraut bin und hoffe daher ihr könnt mir einen hilfreichen Tipp geben.
    Bis jetzt habe ich immer alles statisch gelinkt um dem Problem mit einer Microsoft DLL (msvcr120.dll) aus dem Weg zu gehen, anscheinend ist die DLL auf Rechnern die kein Visual Studio installiert haben nicht vorinstalliert.

    Mein erster Instinkt daher war meine neue Applikation statisch zu linken bis mir aufgefallen ist, dass ich soweit ich das verstehe dadurch die LGPL von Qt verletze.
    (Ergänzung: Ich möchte meinen Source Code nicht veröffentlichen und hatte ursprünglich geplant dynamisch zu linken und einfach die DLLs mitzuliefern.)

    Ich habe beim statischen Linken außerdem ein paar Probleme mit externen Bibliotheken die ich dann auch neu bauen müsste.
    (Sollte allerdings kein großes Problem sein.)

    Gibt es eine elegante Möglichkeit dieses Problem zu lösen?

    Oder muss ich den Nutzern im Installationsprozess einen Link zur Microsoft Seite geben und sie bitten die dll per Setup selbst zu installlieren?

    Vielen Dank,
    Gruß Ruvi



  • Du kannst die Dlls in dein Programmverzeichnis packen und mit ausliefern.



  • Dieser Thread wurde von Moderator/in Arcoth aus dem Forum C++ (alle ISO-Standards) in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • manni66 schrieb:

    Du kannst die Dlls in dein Programmverzeichnis packen und mit ausliefern.

    Ich habe alle Qt dlls im Programmverzeichnis das funktioniert alles ohne Probleme aber als ich das bei der msvcr120.dll probiert habe bin ich auf die Nase geflogen.
    Wenn ich die msvcr120.dll manuell da reinpacke stürzt die Applikation trotzdem mit einer "The application was unable to start correctly." Fehlermeldung.



  • 32/64 Bit Fehler?
    Wird eine Ndere Dll vermisst?



  • Wenn Du für deine Software einen Installer bastelst, kann dieser die Installation des VCRedist vornehmen. Ansonsten rate ich dazu, dass die Nutzer selbst das VCRedist installieren, anstatt statisch zu linken oder die DLLs zur .exe dazuzulegen, denn diese Art der Handhabung ist ja Sinn der Sache. Zukünftige VCRedist-Versionen sollen aber via Windows Update ausgeliefert werden, also könnte das Problem irgendwann mal endlich verschwinden.



  • manni66 schrieb:

    32/64 Bit Fehler?
    Wird eine Ndere Dll vermisst?

    Komisch, es kam keine DLL Fehlermeldung mehr aber in der Tat fehlten noch 2 DLLs, jetzt läuft es.
    Vielen Dank.

    Mr X schrieb:

    Wenn Du für deine Software einen Installer bastelst, kann dieser die Installation des VCRedist vornehmen. Ansonsten rate ich dazu, dass die Nutzer selbst das VCRedist installieren, anstatt statisch zu linken oder die DLLs zur .exe dazuzulegen, denn diese Art der Handhabung ist ja Sinn der Sache. Zukünftige VCRedist-Versionen sollen aber via Windows Update ausgeliefert werden, also könnte das Problem irgendwann mal endlich verschwinden.

    Die Lösung gefällt mir sehr gut.
    Ich habe leider keinerlei Erfahrung mit Installern, was glaubst Du wie hoch der Zeitaufwand einer Implementierung ist?
    Nur ganz grob damit ich eine ungefähre Vorstellung davon hab.



  • Nimm einfach einen der frei verfügbaren: Inno Setup, NSIS, WiX, ... (s.a. List of installation software)
    Visual Studio selber hat aber auch ein Setup-Projekt.

    Speziell für Qt gibt es einen eigenen: Qt Installer Framework Manual

    Ein bißchen Einarbeitung und in 1-2 Tagen sollte du eine erste Installerversion erstellt haben.



  • Ok, danke probier ich mal aus.


Anmelden zum Antworten