Frage

Wie wollen Sie Port C ++ Programme mit Make-Datei von GNU C ++ in Linux zu Visual C ++ gemacht?

War es hilfreich?

Lösung

Eine Sache, die ich vorschlagen kann, ist CMake zu verwenden. Wenn Sie Ihr Build-System mit CMake implementieren, um die Makefiles für GCC unter Linux automatisch generieren, dauert es nur geringfügige Änderungen an automatisch generieren Projekte und Lösungen für VC ++.

Natürlich bedeutet dies ein ganz neues Build-Tool zu lernen, so dass es möglicherweise nicht für Sie sein. Es ist nur ein Vorschlag.

Andere Tipps

Ich weiß nicht, über eine einfache Möglichkeit, einfach von einem zum anderen zu konvertieren, aber ..

Angenommen, Sie verwenden nur ANSI C / C ++ Funktionen, in der Regel brauchen Sie nicht die Make-Datei zu konvertieren, sehen nur die .c / CPP-Dateien drin sind und fügen Sie sie dem VS-Projekt; Sie müssen auch über Compiler-Optionen und Makros definiert überprüfen, so dass sie innerhalb des VS-Projektes zu setzen. Ich habe dies getan zu kompilieren Libs wie expat, Freetype, agg und andere, ohne Probleme.

Portierungs das Build-System: Sie können einen Windows-Portierung von GNU verwenden machen, und die Make-Datei ändern Sie die Visual C ++ Kommandozeilen-Tools (cl.exe, link.exe, lib.exe, etc.) aufzurufen, wenn dabei auf Fenster und die GNU-Compiler-Tools, wenn auf Linux zu bauen. Die Schwierigkeit dieses Ansatzes hängt von der Komplexität der Makefiles.

den Code Porting: Das hängt davon ab, welche APIs und Bibliotheken, die Sie verwenden, und welche Compiler-Warnungen / Fehler / Macken Sie begegnen. Für eine konkrete Antwort, stellt eine spezifischere Frage.

CMake wurde erwähnt. Ich habe CMake verwendet und erfolgreich das resultierende Visual Studio-Projekt zusammengestellt. Ich fand die CMake Dokumentation sehr hilfreich - ich hatte einen vorhandenen Benutzer fragen - und das offizielle Handbuch (das kostet Geld) zu der Zeit vergriffen war. Außerdem formatiert das Visual Studio-Projekt es produziert wurde sehr starr die Vorlage entsprechend bevorzugt von wem auch immer den Konverter schrieb. Ich war nicht in der Lage, herauszufinden, wie Projektoptionen oder Gruppenquelldateien anpassen.

ich regelmäßig Quer kompilieren auf Visual Studio und G ++. Zum größten Teil, Sie müssen nur alle Quelldateien und Headerdateien in ein Visual Studio-Projekt hinzufügen ( ‚hinzufügen Vorhandene Dateien‘, und Ihren gesamten Quellbaum hinzufügen) und dann kompilieren. Normalerweise werden Sie Fehlermeldungen erhalten, so dass Sie beginnen Fehler von dort zu fixieren. Wenn Sie plattformspezifische Bibliotheken verwendet, Sie zu einem alternativen steckt Portierung werden können oder Entfernen von Features.

Ein weiteres Wort der Vorsicht: Visual Studio und G ++ andere Compiler Macken haben. Zum größten Teil, sie beide entsprechen hervorragend zu den C ++ Standard, aber leicht off-Standard-Code, der in einer möglicherweise nicht in dem anderen arbeitet. Ich habe dies gefunden als besonders wahr, wenn sie mit Vorlagen Umgang mit Visual Studio in vielen Fällen von Syntaxfehlern bizarr permissive zu sein.

CMake hat die nicety von Visual Studio-Projekt zu erzeugen.

Wenn Sie nicht, dass müssen, schlage ich Meson System bauen. Viel schöner, ähnlicher Vorschlag. Benötigt python3 und ninja, aber niemand ist perfekt. :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top