我正在尝试将MinGW(版本4.7.2)与Visual Studio 2010配合使用,以使用一些新的C++11功能(可悲的是,我仍在使用Windows XP,无法使用Visual Studio 2012)。 为了开始,我创建了一个项目: 文件 -> 新建项目 -> Visual C++ -> 通用 -> Makefile项目
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
我创建了一个包含以下内容的makefile:
all:
g++ -std=c++11 -pthread -o Makefile_Test.exe main.cpp
代码可以成功编译,但在Visual Studio编辑器中几乎所有内容都被标记为波浪线红色。比如:
std::vector<std::thread> threads;
std::vector
-> '错误:命名空间 std 没有成员 vector'
std::thread
-> '错误:命名空间 std 没有成员 thread'
甚至 std::cout << "";
std::cout
-> '错误:命名空间 std 没有成员 cout'
但是我当然已经包含了相应的头文件:Visual Studio 甚至可以找到它们(将光标放在 #include 上,按 Ctrl+Shift+G 可以打开头文件)。我的 MinGw 文件夹看起来像下面这样:
+ MinGW
|- bin
|- doc
|- include
|+ lib
|- gettext
|+ gcc
|+ mingw32
|+ 4.7.2
|- debug
|+ include
|- c++
|...
|- include-fixed
|- install-tools
|- libexec
|- mingw32
|- msys
|- share
|- var
我也尝试过几次删除sdf文件并让Visual Studio从头开始重建它,但所有这些错误都再次出现了。你有什么想法吗?
Error: namespace std has no member vector
和'Error: namespace std has no member cout'
显然不属于c++11。我很好奇,当@Constantin像更改IDE编译器这样的常见操作时,Intellisense变得混乱的真正问题是什么。 - Hi-Angel