14 Stimmen

Cygwin in Visual Studio

Ich versuche, ein altes Programm, das ich für den Unterricht geschrieben habe, von KDev in Ubuntu auf Windows Visual Studio 2008 mit Cygwin als persönliche Lernübung zu portieren. Ich habe den Include-Pfad so konfiguriert, dass er Folgendes enthält C:\cygwin\usr\include aber es liest die .h-Dateien nicht richtig.

Ich bin nämlich neugierig, wie man mit Unix vorgehen würde sockets.h Funktionalität in einer Visual Studio-Umgebung mit Cygwin. Hat das schon mal jemand hinbekommen oder kennt einen einfacheren Weg, das zu tun?

8voto

Russell Newquist Punkte 2596

Dafür gibt es mehrere Möglichkeiten, die je nach Ihren genauen Zielen zum Einsatz kommen können. Der einfachste Weg ist wahrscheinlich, ein Visual Studio "makefile" Projekt zu erstellen, das einen benutzerdefinierten Build-Befehl auslöst, um ein von Ihnen erstelltes Makefile auszuführen. Aber das hält Sie weg von vielen der netten Vorteile von Visual Studio als IDE, so dass ich vermute, das ist nicht wirklich, was Sie wollen.

Wenn Sie eine vollständig integrierte Lösung wünschen, müssen Sie zwei Dinge tun. Erstens müssen Sie alle Include-/Bibliotheks-Pfade ändern, um die Microsoft-Pfade zu vermeiden und stattdessen die Cygwin-Pfade zu verwenden. Wählen Sie dazu "Werkzeuge->Optionen" aus dem Menü und dann "Projekte und Lösungen->VC++ Verzeichnisse" aus dem Baum auf der linken Seite des Fensters, das sich öffnet. Sie haben dann die Möglichkeit, die Suchverzeichnisse für ausführbare Dateien, Header, Bibliotheken usw. zu ändern. Für das, was Sie vorhaben, würde ich vorschlagen, Folgendes zu entfernen alles und fügen nur die Cygwin-Verzeichnisse hinzu.

Zweitens müssen Sie Visual Studio anweisen, den gcc/g++-Compiler zu verwenden. Das ist ein bisschen komplizierter. VS unterstützt benutzerdefinierte Build-Regeln für benutzerdefinierte Dateitypen ... aber es scheint zu haben C++ fest verdrahtet für den Microsoft-Compiler. Ich weiß nicht wirklich einen guten Weg, um das zu umgehen, außer Ihre eigene benutzerdefinierte Dateierweiterung zu verwenden. Sie können es mit den Standard-Unix-Erweiterungen .c (C-Dateien) und .cc (C++-Dateien) versuchen, aber ich vermute, dass Visual Studio diese automatisch erkennen wird. Vielleicht müssen Sie etwas völlig Fremdes verwenden.

Wenn Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt klicken und "Benutzerdefinierte Build-Regeln" wählen, erhalten Sie eine Schnittstelle, über die Sie Ihre benutzerdefinierten Build-Regeln für die von Ihnen gewählte Dateierweiterung erstellen können. Die Schnittstelle ist dann relativ einfach zu bedienen.

Damit erhalten Sie vielleicht nicht genau das, was Sie wollten, aber es ist wahrscheinlich so gut wie das, was Sie mit Visual Studio erreichen können.

3voto

John Thoits Punkte 345

Dies ist eine alte Frage, aber da sie bei einer Google-Suche zuerst (für SO) auftaucht, wollte ich mitteilen, dass es so aussieht, als ob die neuesten Visual Studio-Versionen dies unterstützen.

Eine Anleitung dazu finden Sie in diesem Blogbeitrag: https://blogs.msdn.microsoft.com/vcblog/2017/07/19/using-mingw-and-cygwin-with-visual-cpp-and-open-folder/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X