【C++】VSCode 使用 C/C++ Compile Run 插件时,设置默认运行的编译参数的方法

news/2024/12/1 0:23:15/

为什么要设置参数

最近在学习C++,在学习多线程的时候,发现使用C++11中的thread类写的代码编译会报错:

 *  正在执行任务: g++ -Wall -Wextra -g3 /Users/anweiyang/studySrc/C++/ThreadTest.cpp -o /Users/anweiyang/studySrc/C++/output/ThreadTest /Users/anweiyang/studySrc/C++/ThreadTest.cpp:21:12: error: no matching constructor for initialization of 'std::thread'thread t1(func, val1, val2);^  ~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/thread:224:5: note: candidate constructor not viable: requires 1 argument, but 3 were providedthread(const thread&);^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/thread:343:9: note: candidate constructor template not viable: requires single argument '__f', but 3 arguments were provided
thread::thread(_Fp __f)^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/thread:249:5: note: candidate constructor not viable: requires single argument '__t', but 3 arguments were providedthread(thread&& __t) _NOEXCEPT : __t_(__t.__t_) {^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/thread:231:5: note: candidate constructor not viable: requires 0 arguments, but 3 were providedthread() _NOEXCEPT : __t_(_LIBCPP_NULL_THREAD) {}^
1 error generated.*  终端进程“g++ '-Wall', '-Wextra', '-g3', '/Users/anweiyang/studySrc/C++/ThreadTest.cpp', '-o', '/Users/anweiyang/studySrc/C++/output/ThreadTest'”已终止,退出代码: 1。 *  终端将被任务重用,按任意键关闭。 

查了一下报错的原因,最终发现是因为使用了 C++11 标准的 thread类,但是编译的时候并没有指定使用 C++11 标准,需要在编译时使用 -std=c++11 标志将编译器设置为使用 C++11 标准或更高版本的特性和语法。这样可以确保编译器能够正确解析线程构造函数的重载。
那么问题来了,执行程序的时候,我都是直接点击运行按钮的,如何配置这个运行按钮的编译参数呢?
运行按钮
首先,要知道这个运行按钮是一个VSCode中的C++的插件提供的,这个插件就是: C/C++ Compile Run
然后在它的github主页上有设置参数的方法:
插件配置项
下面就是找到设置这个key的方法。

设置参数的方法

您可以按照以下步骤使用 c-cpp-compile-run.cpp-flags 字段:

  1. 打开 VSCode,然后按下 Ctrl + Shift + P(Windows/Linux)或 Cmd + Shift + P(Mac)打开命令面板。
  2. 输入 “Preferences: Open Workspace Settings” 并选择该选项,以打开当前工作区的设置。
  3. 在设置面板中,搜索 “c-cpp-compile-run.cpp-flags”,然后在这个字段的设置窗口中添加 -std=c++11 这个参数。
    如图:
    添加-std=c++11
    问题解决。

http://www.ppmy.cn/news/773922.html

相关文章

计算机桌面桌面设置动态视频教程,电脑怎么设置动态桌面?电脑设置动态视频桌面教程...

这样就更酷了。 如图所示,如果想要自己的电脑桌面更炫酷,当然,希望对大家有所帮助。 如图所示,这款软件可能会捆绑第三方的浏览器软件,不妨一起来Get起来, , 以上就是电脑设置动态视频桌面图文教…

Android4.0 默认静、动态桌面设置

默认静态: (1) mkdir -p overlay\frameworks\base\core\res\res\drawable-xlarge-nodpi (2)并放置default_wallpaper.jpg //你想设置的静态桌面 (3)在配置文件xxx.mk添加一行:DEVIC…

怎样将html文件生成桌面动态壁纸,利用自定义桌面和HTML打造动态桌面图标

烈火建站学院(LieHuo.Net)技术文档电脑桌面对于大家来说并不陌生,每天打开计算机第一个映入眼帘的就是电脑桌面。漂亮的桌面可以使人心情愉悦。从一开始的静态桌面壁纸到现在的动态桌面壁纸,从最早的白色默认鼠标到现在的个性动态鼠标,桌面的…

android图标动态刷新,动态更新桌面图标 icon

每当双11或者节假日,安卓的桌面图标会更换成带有节日元素的 icon,今天一探究竟,如何实现的。 需要用到的知识:activity-alias alias 英 [ˈeɪliəs] 美 [ˈeliəs, ˈeljəs] n. 别名,化名; 顾名思义,activity-alias并不是代表一个Activity,而是代表一个已经存在的Acti…

GObject继承类使用到的几个宏定义的展开内容

GOBJECT 继承类的声明部分 G_DECLARE_FINAL_TYPE (MainScreen, main_screen, MAIN, SCREEN, GtkApplicationWindow) GType main_screen_get_type (void);__pragma (warning (push)) __pragma (warning (disable : 4996)) typedef struct _MainScreen MainScreen; typedef stru…

android动态修改桌面图标,Android动态更换桌面图标

简介 最近遇到了这么个需求,动态改变桌面图标,这个功能本身还是比较常见,比如天猫等app在各种剁手节的时候基本都会换个应景的图标以及整体风格,而这里只讨论图标的更换,查阅了一些资料,这里就介绍一下我认为最便捷的方式。 原理 原理其实很简单就是利用标签,控制其enab…

Qt动态桌面背景

一.简介 通过实现一个动态的桌面背景小程序&#xff0c;来加强对Qt的paintEvent的理解与使用&#xff0c;以及一些小知识。 二.实现过程 1. 初始化&#xff0c;并保存每段圆弧的起始度数和扫过的弧度,便于绘制圆弧。 //记录二十一个圆的圆弧信息for(int i0;i<21;i) {vect…

Windows动态桌面原理

测试所用系统版本 OS 名称&#xff1a;Microsoft Windows 10 家庭版&#xff1b;版本号&#xff1a;10.0.14393 暂缺 Build 14393 OS 名称&#xff1a;Microsoft Windows 7 企业版&#xff1b;版本号&#xff1a; 6.1.7600 暂缺 Build 7600&#xff08;已启用Aero&#xff0…