Con*_*tin 4 c++ mingw visual-studio-2010 makefile-project c++11
我正在尝试使用Visual Studio 2010的MinGW(版本4.7.2)来使用一些新的C++ 11功能(遗憾的是我仍然使用WindowsXP并且不能使用Visual Studio 2012).首先,我创建了一个项目:File - > New Project - > Visual C++ - > General - > Makefile-Project
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
Run Code Online (Sandbox Code Playgroud)
我创建了一个包含内容的makefile:
all:
g++ -std=c++11 -pthread -o Makefile_Test.exe main.cpp
Run Code Online (Sandbox Code Playgroud)
它编译得很好,但在Visual Studios编辑器中几乎所有东西都是波浪形的红色.即
std::vector<std::thread> threads;
Run Code Online (Sandbox Code Playgroud)
std::vector - >'错误:命名空间std没有成员向量'
std::thread - >'错误:命名空间std没有成员线程'
甚至 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
Run Code Online (Sandbox Code Playgroud)
我还尝试删除sdf文件几次,让Visual Studio从头开始重建 - 但所有这些错误再次出现.
我在这里做错了什么想法?
我担心你将不得不放弃尝试使这些红色曲线消失,除非你完全禁用它们(例如,甚至不会标记对不存在的函数的调用).
原因是Visual Studio的Intellisense使用单独的前端到EDG的C++编译器来解析您的程序,并可能在无效的语句或表达式下放置红色波形,并且VS2010中的Intellisense使用的版本(显然)不完全符合C++ 11.
因此,切换到GCC 4.7.2作为编译器将有助于构建您的C++ 11程序,但不会影响Intellisense的行为.
如果要完全禁用红色波形,可以选择工具 - >选项 - >文本编辑器 - > C/C++ - >高级,然后将"禁用斜角"设置为"真".
| 归档时间: |
|
| 查看次数: |
8631 次 |
| 最近记录: |