Dav*_*ein 10 c++ qt qt-creator c++11
我的核心问题是,当使用Qt Creator作为"通用"(非Qt)项目的代码编辑器时,如何告诉它使用c ++ 11语法高亮?
我有一个c ++ 11项目,我已经工作了一段时间,我决定尝试给Qt Creator.这是一个简单的vanilla c ++项目,带有手动编码的makefile等等.
Qt Creator打开项目("eSLIME")就好了,创建了三个文件:eSLIME.config,eSLIME.includes和eSLIME.files.它没有创建.pro文件.
似乎没有认识到c ++ 11的调用.例如,它#include <unordered_set>以绿色突出显示" ",表示没有此类文件或目录.
我怀疑我应该在.config文件中添加一些东西,但我无法弄清楚什么和谷歌搜索没有帮助.我试着附加-std = c ++ 0x,但是没有用.
PS:代码太破碎了,无法立即构建,这就是我切换到IDE的原因.
avt*_*ton 11
从这个问题和答案过去了两年,但Qt Creator(至少对于Linux)没有任何改变:即使是最新版本(现在它是3.5)也无法解析C++ 11标题.
问题是默认情况下__cplusplus内部Qt Creator解析器被定义为小于201103L的某个值,在STL头中有很多对这个宏的检查,如下所示:
#if __cplusplus < 201103L
#include <bits/c++0x_warning.h>
// disable all tasty functionality
#endif
Run Code Online (Sandbox Code Playgroud)
首先,我尝试在*.config中添加以下行:
#define __cplusplus 201103L
Run Code Online (Sandbox Code Playgroud)
没啥事儿.
经过一些调查后,我终于找到了合适的解决方案:只需写入*.config:
#define __cplusplus 201103
Run Code Online (Sandbox Code Playgroud)
神奇的一切都活着!
| 归档时间: |
|
| 查看次数: |
2221 次 |
| 最近记录: |