11

我已经为 Windows 安装了 Code::Blocks 并且想要编译 C++14 代码,比如通用 lambda,但是我从codeblocks.org安装的 Code::Blocks 的二进制版本不支持 flag
-std=c++14

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

4

2 回答 2

40

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

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

  1. 从此处(特定版本)或从官方网站下载 MinGW以选择选项
  2. 将其解压缩到例如:C:\(结果将是 C:\MinGW)
  3. 打开代码::块
  4. 转到设置 => 编译器。
  5. 转到“工具链可执行文件”。
  6. 在顶部字段“编译器的安装目录”中,将目录更改为您提取编译器的目录。例如 C:\MinGW。
  7. 更改“Program Files”下的所有必要文件以匹配 C:\MinGW\bin 下的文件:

在此处输入图像描述

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

在此处输入图像描述

  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;
}
于 2015-07-01T21:26:21.163 回答
-1

一个不起眼的新手可以提出一个小建议吗?对测试 C++14 代码的小修改,以允许生成的 .exe 文件独立于创建它的 IDE 运行,稍作修改的测试程序如下:

 #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;

     cout << "press enter to continue..." << endl;
     cin.ignore(10, '\n');
     cin.get();
 }

谢谢大家,祝所有程序员同胞们平安,尤其是 Igor Tandetnik。

于 2015-12-23T18:51:33.223 回答