Ich habe eine Socket-Bibliothek für C++ verwendet. Einige andere Informationen: 32 Bit Linux, Codelite und GCC Toolset. Ich möchte mein Programm für Windows mit der Windows-Edition von Codelite kompilieren können. Die Socket-Bibliothek, die ich verwendet habe, hat keinen mingw32-Build der Bibliothek, aber es ist Open Source. Wie kann ich also ein mingw32-Build der Socket-Bibliothek erstellen, damit ich mit der bereitgestellten Quelle ein Windows-Build erstellen kann?Linux-Bibliothek für Mingw kompilieren
Antwort
Sie portieren es auf die neue Plattform. :)
Sie haben Glück, dass es opensource ist, denn dann wäre es praktisch unmöglich, es zu portieren (Sie müssten $$$ zahlen, um eine Kopie des Codes für eine bestimmte Lizenz zu erhalten, oder das gesamte Produkt neu schreiben).
Genießen.
Alternativ können sie auch einen Port haben ... Überprüfen Sie die Dokumentation für die Bibliothek, die Sie verwenden.
Zunächst müssen Sie sicherstellen, dass Sie keine Linux-spezifischen Bibliotheken enthalten.
Die meisten Open-Source-Linux-Bibliotheken sind mit dem make-Build-System gebaut (obwohl dort andere Marmelade usw., und benutzerdefinierte Skripte für den Bau). MinGW kommt mit dem make-Dienstprogramm, es ist mingw32-make.exe. Es ist möglich (wenn Sie Glück haben), Ihre Bibliothek einfach neu zu erstellen, indem Sie sie unter Windows erstellen.
Das üblichere Szenario ist, dass Sie das Projekt konfigurieren müssen, bevor Sie es jedoch erstellen können. Die Windows-Shell unterstützt die zum Konfigurieren erforderlichen Skriptanforderungen nicht, aber es gibt einen anderen Teil des MinGW-Projekts, der MSYS heißt. Wenn Sie msys und alle erforderlichen Tools installieren, die Sie dafür benötigen, können Sie Ihr Projekt vor der Ausführung von make konfigurieren.
Natürlich funktioniert das Obige nur, wenn die Bibliothek portabel geschrieben ist. Es gibt einige Unterschiede zwischen der Linux-Socket-Implementierung (sys/socket.h) und der Windows-Implementierung (winsock2.h). Möglicherweise müssen Sie Teile des Codes bearbeiten, um sicherzustellen, dass er für die Plattform korrekt versioniert ist (oder dass alle erforderlichen Abhängigkeiten auch für Windows erstellt wurden).
Es besteht auch die Möglichkeit, dass die Bibliothek möglicherweise bereits für Windows erstellt wird, aber einen anderen Compiler wie MSVC verwendet, der .lib- und .dll-Dateien erstellt. Mingw benötigt .a-Dateien für Bibliotheken, aber eine clevere Funktion ist die direkte Verknüpfung mit einer .dll-Datei, ohne dass eine Import-Bibliothek benötigt wird. Daher können Sie häufig eine vorhandene Windows-Bibliothek verwenden, die nicht gegen Mingw erstellt wurde helfe nicht für statische Verknüpfungen. Es gibt auch ein Werkzeug, dlltool, das .lib in .a konvertieren kann.
Wenn Sie Details zu der spezifischen Bibliothek angeben, mit der Sie arbeiten, kann ich möglicherweise herausfinden, was Sie tun müssen, um es auf Win auszuführen.
- 1. MinGW kompilieren für MS DOS
- 2. MinGW Kreuz kompilieren auf Linux
- 3. mingw + libarchive: Kreuz kompilieren Linker Fehler
- 4. Kompilieren von Gnu11 für Windows mit MinGW unter Linux
- 5. Kompilieren von Ruby 1.9.1 in MinGW
- 6. Kompilieren OpenCL auf Mingw Nvidia SDK
- 7. Stapelgröße beim Kompilieren mit Mingw erhöhen?
- 8. Problem Kompilieren freetype2 mit MinGW/MSYS
- 9. Wie kompilieren und verwendet GLib mit MinGW
- 10. Konfigurieren von Eclipse für MinGW
- 11. Kompilieren 64-Bit-Binärdatei mit MinGW (Dev-C++)
- 12. Wie kompilieren Sie Python 3.5-Code mit Mingw?
- 13. alle CPP-Dateien Kompilieren Make-Datei unter MinGW mit
- 14. Gibt es ein Paketverwaltungssystem für MinGW + MSYS?
- 15. Kompilieren Kleines Gcc Projekt unter Windows mit MinGW
- 16. Kompilieren von Pdcurses mit Mingw in XP SP3 Problem
- 17. mit cmake mit mingw-w64 Fehler kompilieren Testprogramm
- 18. Notepad ++ zum Kompilieren und Ausführen von C++ - Programmen mit minGW
- 19. Kompiliere LAPACK für Windows mit MinGW-w64
- 20. compile cdrtools mit mingw
- 21. Was ist der Unterschied zwischen MinGW, MinGW-w64 und MinGW-Builds?
- 22. OpenGL + Mesa 3D + MinGW
- 23. VTune Analyzer mit mingw
- 24. MinGW erzeugt keine Warnungen
- 25. Mingw Mehrfachdefinition von _Unwind_resume
- 26. MinGW-Befehlszeilenbegrenzung?
- 27. Sockets in MinGW
- 28. Mingw libgcc_s_sjlj-1.dll fehlt
- 29. MinGW und std :: thread
- 30. stat() in mingw arbeitet falsch
Ich habe die Bibliothek Dokumente überprüft und sie haben nichts für mingw32. Wie kann ich über die Bibliothek "portieren", welche Schritte muss ich unternehmen? – TheFuzz
@TheFuzz sehen Sie sich den Quellcode an. Ändern Sie alles, was für Ihre Plattform spezifisch ist. Senden Sie einen Patch an die Bibliotheksbetreuer. –