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

时间:2015-07-01 21:26:21

标签: c++ codeblocks c++14 generic-lambda

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

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

2 个答案:

答案 0 :(得分:37)

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

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

  1. here(特定版本)或from official site下载MinGW到choose options
  2. 将其提取为例如:C:\(结果将为C:\ MinGW)
  3. 打开Code :: Blocks
  4. 转到设置=>编译器。
  5. 转到“工具链可执行文件”。
  6. 在顶部字段“编译器的安装目录”中,将目录更改为解压缩编译器的目录。例如C:\ MinGW。
  7. 更改“Program Files”下的所有必要文件以匹配C:\ MinGW \ bin下的文件:
  8. enter image description here

    1. 在点击“确定”之前,请转到最左边的“编译器设置”选项卡。
    2. 选择“编译器标志”。
    3. 为简单起见,在列表中右键单击并选择“New Flag”:
    4. enter image description here

      1. 输入以下内容并单击"确定",然后勾选刚刚创建的旗帜框:
      2. enter image description here

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

          现在,尝试使用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;
          }
          

答案 1 :(得分:-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。