在Code :: Blocks中启用`-std = c ++ 14`标志

And*_* DM 11 c++ codeblocks generic-lambda c++14

我已经安装了Code :: Blocks for Windows,并希望编译C++ 14代码,如通用lambdas,但我从codeblocks.org安装的Code :: Blocks的二进制版本不支持该标志
-std=c++14.

如何更新编译器并启用-std=c++14Code :: Blocks的标志?

And*_* DM 38

要在Code :: Blocks中使用C++ 14编译源代码,首先,您需要下载并安装支持C++ 14功能的编译器.

以下是在Windows上执行此操作的方法:

  1. 这里(特定版本)或官方网站下载MinGW 以选择选项
  2. 将其解压缩到例如:C:\(结果将是C:\ MinGW)
  3. 打开Code :: Blocks
  4. 转到Settings => Compiler.
  5. 转到"工具链可执行文件".
  6. 在顶部字段"编译器的安装目录"中,将目录更改为解压缩编译器的目录.例如C:\ MinGW.
  7. 更改"Program Files"下的所有必要文件以匹配C:\ MinGW\bin下的文件:

在此输入图像描述

  1. 在点击"确定"之前,转到最左侧的"编译器设置"选项卡.
  2. 选择"编译器标志".
  3. 为简单起见,在列表中右键单击并选择"New Flag":

在此输入图像描述

  1. 输入以下内容并单击"确定",然后勾选刚刚创建的标志框:

在此输入图像描述

  1. 最后,您需要指定调试器路径.转到"设置"=>"调试器",单击左侧的"默认",然后输入可执行文件的新完整路径:

在此输入图像描述


现在,尝试使用C++ 14功能编译程序:

#include <iostream>
#include <string>
using namespace std;

auto main() -> int
{
    auto add_two([](auto x, auto y){ return x + y; });

    cout << add_two("I"s, "t"s) << " works!" << endl;
}
Run Code Online (Sandbox Code Playgroud)

  • 我完全无意在我管理的任何机器上这样做,但我不得不提高这一点.这个答案是*Stellar*,有一个大写字母S. (2认同)