2016-05-24 10 views
1

Ich bin nicht so erfahren mit C++ und MS Visual Studio. Ich habe derzeit Probleme mit der Freigabe von .exe und versuche, das Programm auf einem anderen PC auszuführen. Im Programm verwende ich eine zusätzliche Bibliothek (magick ++). Ich habe die Laufzeitbibliothek in Visual Studio 2015 zu Multi-Threaded (/ MT) konfiguriert. Ich nehme an, dass mit dieser Konfiguration die EXE-Datei auf verschiedenen PCs ausgeführt werden sollte, aber wenn ich versuche, es auszuführen, erscheint Nachricht mit "CORE_RL_Magick ++. Dll" auf diesem Computer erscheint. Irgendeine Idee, was könnte falsch sein?Release funktioniert nicht auf verschiedenen PC

Meine zweite Frage ist, wenn ich eine Freigabe mit dynamischer Bibliothek /MD machen möchte, wie kann ich die Bibliothek auf einem anderen PC laufen lassen? Oder muss ich zuerst die Bibliothek installieren (ich meine wenn Ich muss Imagemagick auf dem Computer installieren, oder gibt es eine Möglichkeit, wie ich die benötigte Bibliothek aus dem Build in Visual Studio holen kann.)

Vielen Dank für jede Information,

Antwort

1

Haben Sie CORE_RL_Magick ++? DLL in dem Pfad (einschließlich des Verzeichnisses, das Ihr EXE-Programm ausgeführt wird) irgendwo auf dem Computer, der fehlschlägt.

Die Befehle/MD und/MT bewirken, welche Laufzeit verwendet wird und nicht, von welchen anderen Bibliotheken das Programm abhängig ist.

Also mit/MT wird es eine statische Version der visuellen c-Bibliotheken in die exe kompilieren, aber wenn mit der magischen DLL verknüpft, wird es immer noch benötigen, dass CORE_RL_Magick ++. dll um zu laufen.

+0

Das könnte blöde Frage sein, aber die DLL sollte in einem bestimmten Pfad sein, oder wie ich vermute, ich habe es in den gleichen Ordner wie die exe-Datei? – jeikey

+0

dasselbe Verzeichnis, oder eines, das im Pfad ist wie Windows \ system32 usw. – lostbard

1

Ich denke, /MD ist eine bessere Wahl, für kleinere Größe.

Wenn Sie ein Programm auf einem anderen PC ausführen möchten, müssen Sie möglicherweise zunächst Visual Studio Redistributable (kann auf der Microsoft-Website heruntergeladen werden) auf dem PC installieren.

1

Vereinbaren Sie mit Martin Zhai. Ich hatte dieses Problem, als ich versuchte, mein Programm nach dem Upgrade auf 2015 auf einem anderen Computer auszuführen. Die DLL, die ich verwenden wollte, wurde trotz ihrer lokalen Herkunft nicht gefunden. Die Installation von Visual C++ Redistributable for Visual Studio 2015 hat dies behoben.

+0

Ich habe das Visual C++ Redistributable für VS 2015 installiert (x86 wie das Programm), aber ich bekomme immer noch den Fehler, dass die Bibliothek "CORE_RL_Magick ++. dll "fehlt, befindet sich jedoch im selben Ordner wie die .exe-Datei. – jeikey

+0

Überprüfen Sie, welche anderen Redistributables auf Ihrem Dev-Rechner installiert sind und stellen Sie sicher, dass diese auf Ihrem Zielrechner installiert sind. Es kann ein Fall sein, dass die .dll-Datei, die Sie verwenden (da Sie sie nicht erstellt haben), ein früheres verteilbares oder ein weiterverteilbares Paket erfordert, das nicht auf dem Zielcomputer installiert ist. Sie können jederzeit einen Dependency Walker für Ihre EXE-Datei verwenden oder das Ereignisprotokoll überprüfen, das weitere Hinweise zu dem Fehler gibt, während die DLL nicht geladen werden konnte. (vielleicht falsche Version von. DLL oder etwas). – lfgtm