2016-04-05 5 views
0

Ich bin ein Junior-Programmierer. Ich habe ein Visual Studio C++ - Projekt mit einer Reihe von Abhängigkeiten entwickelt: Boost, eine Fingerabdruck-Erkennungsbibliothek und Windows Biometrics Frameworks. Heute weiß ich, dass das Windows Biometric Framework vom Standard-Windows-Update heruntergeladen werden kann, und ich bin nicht besorgt darüber, dass die Anwendung nach meinem Wissen bereit ist, WBF-Abhängigkeiten auf dem Computer selbst zu suchen und zu verknüpfen.Verteilung von C++ - Anwendung mit Abhängigkeiten in Visual Studio

Meine Sorge ist: welche ist die einfachste (nicht am effizientesten, brauche ich Geschwindigkeit hier) Weg, um die ausführbare Datei mit allen Ressourcen und Abhängigkeiten packen diese .exe braucht (Boost und die Fingerabdruckerkennung SDK), so dass ich kann Verteilungsprobleme minimieren, dh diese DLL fehlt, bitte installieren Sie die Anwendung, und solche Dinge, ohne alles auf dem Computer des Clients kompilieren zu müssen?

Ich konnte hier ein paar Wege sehen: Kopieren Sie die in der Projektkonfiguration aufgelisteten DLLs, wechseln Sie zu statischem Link ... aber ich weiß nicht, ob das der einfachste Weg ist. Ich habe wenig oder kein Vertrauen in meine Fähigkeiten dafür und diese Methoden scheinen ziemlich manuell zu sein, sich fragend, ob es einen automatischen Weg geben könnte, diese Dinge zu tun?

Antwort

0

Ich bin nicht vertraut mit der Fingerabdruck-Bibliothek oder WBF, aber die meisten von Boost befindet sich in Headern so kompiliert in, wenn Sie Ihre Anwendung kompilieren. Einige, wie die Threading-Bibliothek und systemspezifische Aufrufe (z. B. Abrufen der CPU-Kernanzahl) sind Bibliotheken, mit denen statisch verknüpft ist.

Welches Format der Fingerabdruckbibliothek wird bereitgestellt? Dynamisch würde es mindestens eine .dll mit einer entsprechenden .lib-Importdatei geben. Ihre Anwendung wird nach dem Kompilieren statisch mit dem Importeur verknüpft und bindet während der Laufzeit an die Bibliothek. Oder die Bibliothek kann in eine große einzelne .lib-Datei eingeschlossen werden, die nach der Kompilierung mit Ihrer Anwendung verknüpft ist. Wenn Sie beide Optionen zur Verfügung haben und nur die Binärdatei verteilen möchten, verwenden Sie die statische Verknüpfung.

+0

Danke, ich habe verstanden, dass ich zuerst die Logik hinter der Verknüpfung lernen musste. Oder zumindest gibt es keinen anderen Weg in diesem Thread gefunden. Wie auch immer, ich habe meine Abhängigkeiten gefunden. Bei der statischen Verknüpfung muss ich keine lib-Dateien im Projekt bereitstellen, und es gab eine DLL-Bibliothek, die ich der ausführbaren Datei bereitstellen musste. Ich akzeptiere diese Antwort. – rrreche

0

Wie in jedem System müssen Sie alle DLL-Bibliotheken in Ihre App-Links und alle externen Ressourcen (Bilder, Konfigurationsdateien, ...) Ihrer App aufnehmen. Normalerweise mache ich meine Windows-Distributionen mit http://www.jrsoftware.org/isinfo.php. Sehr einfach zu bedienen.

+0

Schließlich war das Projekt nicht so kompliziert und lernte, meine Bibliotheken zu verknüpfen. Danke für den Vorschlag! – rrreche

Verwandte Themen