Integrieren MinGW mit Visual Studio 2010 (Makefile-Projekt)
Ich versuche, MinGW (Version 4.7.2) arbeiten mit Visual Studio 2010 um einige neue C++11-features (leider bin ich immer noch auf WindowsXP und kann nicht mit Visual Studio 2012).
Um loszulegen, ich habe ein Projekt erstellt mit:
Datei -> Neues Projekt -> Visual C++ -> allgemein -> Makefile-Projekt
General:
Build Command Line: mingw32-make.exe
Rebuild All Command Line: mingw32-make.exe rebuild all
Clean Command Line: mingw32-make.exe clean all
IntelliSense:
Include Search Path: C:\MinGW\lib\gcc\mingw32\4.7.2\include\c++;C:\MinGW\include;
Assembly Search Path: C:\MinGW\lib\gcc\mingw32\4.7.2;C:\MinGW\lib;
Additional Arguments: -std=c++11
Und ich erstellt ein makefile mit dem Inhalt:
all:
g++ -std=c++11 -pthread -o Makefile_Test.exe main.cpp
Kompiliert er gerade fein, aber fast alles ist wellenförmig rot Unterstrichen im Visual Studio-editor. also
std::vector<std::thread> threads;
std::vector
-> 'Error: namespace std hat kein Mitglied Vektor'
std::thread
-> 'Error: namespace std hat kein Mitglied-thread'
sogar std::cout << "";
std::cout
-> 'Error: namespace std hat kein Mitglied cout'
Aber ich habe die correspondending Header natürlich: und Visual Studio können auch finden Sie (platzieren Sie den cursor an #include -> Strg+Umschalt+G öffnet den header). Meine MinGw-Ordner sieht wie folgt aus:
+ MinGW
|- bin
|- doc
|- include
|+ lib
|- gettext
|+ gcc
|+ mingw32
|+ 4.7.2
|- debug
|+ include
|- c++
|...
|- include-fixed
|- install-tools
|- libexec
|- mingw32
|- msys
|- share
|- var
Ich habe auch versucht zu löschen, die die sdf-Datei ein paar mal und lassen Sie Visual Studio neu erstellen von Grund auf - aber alle diese Fehler erschien wieder.
Irgendwelche Ideen, was mache ich hier falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fürchte ich, dass Sie aufgeben müssen, um Ihre versuche zu machen, diese roten Wellenlinien verschwinden , es sei denn, Sie deaktivieren Sie vollständig (so dass zum Beispiel nicht auch Aufrufe von nicht existierenden Funktionen werden gekennzeichnet).
Der Grund ist, dass Visual Studio Intellisense verwendet eine separate front-end EDG C++ compiler analysieren Ihr Programm und eventuell eine rote Wellenlinie unter ungültigen Aussagen oder Ausdrücke, und die version von Intellisense verwendet, in VS2010 ist (scheinbar) nicht vollständig kompatibel mit C++11.
Daher der Wechsel zu GCC 4.7.2, da der compiler wird helfen, bauen Sie Ihre C++11 Programme, aber nicht auf das Verhalten von Intellisense.
Wenn Sie möchten, deaktivieren Sie die roten Wellenlinien komplett, Sie können es tun, indem Sie auf Extras -> Optionen -> - Text-Editor -> C/C++ -> Erweitert, und die Einstellung Deaktivieren "Schnörkel" auf "True".
Error: namespace std has no member vector
'Error: namespace std has no member cout'
sicherlich gehören nicht zu c++11. Ich bin sehr neugierig, was war das eigentliche problem, dass die Intellisense wurde geschraubt, nachdem @Constantin sieht so eine ziemlich übliche Sache wie die änderung ein compiler, eine IDE.Über das Makefile-Projekt Vorlage wie der OP beschrieben. Ich habe in der Lage zu bekommen, VC-2013 & 2015 Community edition ist intellisense arbeiten, indem Sie die richtigen include-Verzeichnisse, um die Eigenschaften von Projekten.
Project menu
{Project Name} Properties
Configuration Properties
VC++ Directories
im Baum-MenüIncludes Directories
AbschnittSie tun müssen, fügen Sie die Verzeichnisse, die die Elemente enthalten, die Sie wollen, Lesen Sie in intellisense. Sagen, ich arbeite an einem gtkmm-Projekt, ich würde auch gehören, die glibmm dir so die Glib::ustrings nicht bekommen Schnörkel. Auch wenn glibmm.h ist nicht direkt in meine source-Dateien.