Eine genauere Antwort von Jerry.
Das unten beschriebene Verfahren sollte mit Ihren Rechten und dem Lizenzrecht konfrontiert werden! Ich weiß, dass es funktionieren kann, aber die Rechte zur Verbreitung des Ergebnisses (oder sogar zur Durchführung der Prozedur) können (und ich bin wirklich der Meinung, dass sie es sind) durch die Cygwin-Lizenz eingeschränkt sein. Das liegt daran, dass Ihre Anwendung immer noch auf Cygwin verweisen wird (auch wenn es nutzlos ist - aber immer noch in Ihrer Anwendung ist)
Angenommen, hello.exe
ist der Name Ihrer großen Anwendung, die unter Cygwin im großen Projektverzeichnis kompiliert wurde C:\xxx\yyy\zzz\
Gehen Sie in der Cygwin-Konsole zu C:\xxx\yyy\zzz
und tippen
objdump -p hello.exe | grep "DLL Name"
Sie erhalten alle DLLs, die Ihre Anwendung verwendet. Dann kopieren Sie C:\xxx\yyy\zzz
für alle aufgelisteten DLLs, die spezifisch für Cygwin sind.
Beachten Sie, dass Ihre Anwendung andere Anwendungen aufrufen kann (z.B. mit der exec-Funktion) --- finden Sie die Bibliotheken, die die Anwendungen verwenden und kopieren Sie diese Bibliotheken sowie die Anwendungen selbst -- nach C:\xxx\yyy\zzz
.
Möglicherweise müssen Sie Ihr Projekt mit der Option der Art neu kompilieren -L C:\xxx\yyy\zzz
oder so. Achten Sie auf alle anderen Pfade in Ihren Quellen.
Dadurch wird Ihre Anwendung unabhängig von der Cygwin-Installation und Sie können ihre Funktionalität ---- anderen Windows-Benutzern ohne Cygwin präsentieren bzw. mit ihnen teilen. Aber - ich weise Sie noch einmal darauf hin und bitte Sie - beachten Sie die Lizenz und das Recht der Cygwin-Hersteller und halten Sie sich daran!
0 Stimmen
Ich nehme an, dass Sie tatsächlich Dienste von CYGWIN.DLL benötigen, und dass die Verwendung von -Mno-cygwin (oder MinGW) für Sie nicht funktioniert?
0 Stimmen
Ich weiß es nicht. Ich benutze GCJ, aber ich konnte den GCJ, der mit mingw kam, nicht zum Laufen bringen.