VSCode C/C++ 开发环境配置
VSCode 安装插件
- C/C++ Extension Pack
- C/C++
- C/C++ Themes
- CMake Tools
- Makefile Tools
- CMake
Windows下的环境配置
安装 MSYS2 和 GCC工具链
- 下载MSYS2安装文件 https://www.msys2.org/
- 安装到D盘,
D:\msys64
- 将 UCRT64 路径添加到 Windows:
D:\msys64\ucrt64\bin\
- 启动 UCRT64 终端
- 执行以下命令
# 更新软件库
pacman -Syu
# 安装工具链, 根据提示, 安装需要的 gcc, gdb等
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
# 安装opencv
pacman -S mingw-w64-ucrt-x86_64-opencv
VSCode配置
在 Windows 路径中增加 UCRT64 路径后, VSCode 会自动检测到 gcc.exe 的存在, 此时可以
- 编译当前编辑的C/CPP文件
- Alt+Shift+F10: 唤出菜单中选择"C/C++ gcc.exe build active file", 注意看下面的明细显示的是否是
D:\msys64\ucrt64\bin\gcc.exe
, 如果是cpp文件, 选择带g++.exe
的选项 - 如果只是运行标准任务, 不会创建 tasks.json
- Alt+Shift+F10: 唤出菜单中选择"C/C++ gcc.exe build active file", 注意看下面的明细显示的是否是
- 创建 tasks.json
- Ctrl+Shift+P: 唤出菜单,输入
Task
, 选择Tasks: Configure Task
, 然后选择"C/C++ gcc.exe build active file" - 通过 tasks.json, 可以定制编译选项
- Ctrl+Shift+P: 唤出菜单,输入
启动debug
- 按 F5, 选择"C/C++ gcc.exe build and debug active file"
- 默认debug不会创建 launch.json, 如果要创建 launch.json, 在侧栏 Run and Debug 中, 点击 create a launch.json file , 再选择 C++(GDB/LLDB), 在弹出的列表中, 选择 GDB launch, 并在生成的 launch.json 模板中, 输入gdb.exe 路径等参数
配置文件示例
c_cpp_properties.json
compilerPath
指向UCRT64编译器, 在includePath
中增加对第三方库的引用
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**","D:/msys64/ucrt64/include/opencv4"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.19041.0","compilerPath": "D:/msys64/ucrt64/bin/g++.exe","cStandard": "c11","cppStandard": "c++11","intelliSenseMode": "gcc-x64"}],"version": 4
}
tasks.json
options
是必须的, 路径中的/
可以替换为\\
{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "build basic cpp file","command": "D:/msys64/ucrt64/bin/g++.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe"],"options": {"cwd": "D:/msys64/ucrt64/bin"},"problemMatcher": ["$gcc"],"group": "build","detail": "compiler: D:/msys64/ucrt64/bin/g++.exe"},{"type": "cppbuild","label": "build basic c file","command": "D:/msys64/ucrt64/bin/gcc.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe"],"options": {"cwd": "D:/msys64/ucrt64/bin"},"problemMatcher": ["$gcc"],"group": "build","detail": "compiler: D:/msys64/ucrt64/bin/gcc.exe"}]
}
如果要编译多个文件, 可以在 args
中指定, 或者用通配符"${fileDirname}/*.cpp"
指定所有cpp文件
"-g","${fileDirname}/line_detection.cpp","${fileDirname}/utils.cpp",//"${fileDirname}/*.cpp","-o","${fileDirname}/build/${fileBasenameNoExtension}.exe",
如果要添加 opencv 库, 需要在args
中增加引用
"-I","D:/msys64/ucrt64/include/opencv4","-lopencv_imgcodecs","-lopencv_core"
launch.json
program
指向编译结果, 可以用preLaunchTask
指定在debug之前执行编译任务
{"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch","program": "${workspaceFolder}/${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "D:/msys64/ucrt64/bin/gdb.exe","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "Set Disassembly Flavor to Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]}]
}
Ubuntu下的环境配置
Ubuntu下因为系统内建了GCC工具链, 如果对版本没有要求直接用默认的就可以
配置文件示例
c_cpp_properties.json
{"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","/usr/include/c++/11","/usr/include/x86_64-linux-gnu/c++/11","/usr/include/opencv4"],"defines": [],"compilerPath": "/usr/bin/gcc","cStandard": "gnu11","cppStandard": "gnu++11","intelliSenseMode": "linux-gcc-x64"}],"version": 4
}
launch.json
{"version": "0.2.0","configurations": [{"name": "C/C++ debug active file","type": "cppdbg","request": "launch","program": "${fileDirname}/build/${fileBasenameNoExtension}","stopAtEntry": true,"cwd": "${fileDirname}","externalConsole": false,"MIMode": "gdb","preLaunchTask": "build active file","miDebuggerPath": "/usr/bin/gdb"}]
}
tasks.json
{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"type": "cppbuild","label": "build active file","command": "/usr/bin/g++","args": ["-g","${file}","-o","${fileDirname}/build/${fileBasenameNoExtension}","-I", "/usr/include/opencv4","-l", "opencv_core","-l", "opencv_imgcodecs","-l", "opencv_videoio","-l", "opencv_imgproc","-l", "opencv_photo","-l", "opencv_xphoto",]}]
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914077.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
做网站买流量网站线框图
前言众所周知, 现在的 Spring 框架已经成为构建企业级 Java 应用事实上的标准了,众多的企业项目都构建在 Spring 项目及其子项目之上,特别是 Java Web 项目。Spring 的两个核心概念是 IoC(控制反转)和 AOP(面向切面编程)。想了解 Spring 的工…
南阳网站排名优化费用wordpress主题 简洁
文章目录 java整合农行支付1:业务需求了解2:第三方App接入农行支付流程2.1 java 集成农行依赖2.2 java配置农行支付相关证书信息2.2.1:首先我们要配置ConfigSource 文件2.2.2: 配置TrustMerchant 文件信息3:接入农行支付等相关api接口java整合农行支付
技术背景:idea+jd…
网站开发团队如何接活自己做网站可以上传软件
天池竞赛-津南数字制造算法挑战赛【赛场二】解决方案分享
一、前言
竞赛页面
团队名BugFlow,最终排名35/2157
虽然成绩一般,但是作为一支目标检测领域的新手队伍,仅仅有一块1070显卡,从零开始拿到这个排名,也算有一…
自做闪图网站网站建设需要什么材料
本是青灯不归客,却因浊酒恋红尘 一,基本使用
关于Room数据库的基本使用,请参考文章Android--Jetpack--数据库Room详解一-CSDN博客 二,Room与ViewModle,LiveData的结合使用
LiveData与ViewModle的使用,请参考文章Andr…
网站建设的心得与体会茂名市建设局网站
📖第4章 Android高德地图绘制标记点Marker ✅绘制默认 Marker✅绘制多个Marker✅绘制自定义 Marker✅Marker点击事件✅Marker动画效果✅Marker拖拽事件✅绘制默认 Infowindow🚩隐藏InfoWindow 弹框 ✅绘制自定义 InfoWindow🚩实现 InfoWindow…
婚恋咨询网站运营wordpress 外跳
2019独角兽企业重金招聘Python工程师标准>>> 用java实现对纯真IP数据库的查询,首先到网上下载QQwry.da文件,读取代码如下:1.IP记录实体类 package com.guess.tools; /** * 一条IP范围记录,不仅包括国家和区域ÿ…
设计网站建设长沙必去十大网红地方
1 ChatGPT每日一题:PCB布线,高速信号线走直角的后果
问题:PCB布线,高速信号线走直角的后果
ChatGPT:对于高速信号线来说,最好避免使用直角布线。直角布线会引入反射和信号损耗,从而导致信号完…
vite静态资源处理
/*** 获取完整解析静态资源的url,如图片、svg等* @param {string} path 静态资源在在assets中的地址,例如:images/pubilc/logo.png* @returns {string}*/
export function getStaticUrl(path: string | undefined):…
洛谷B4040 [GESP202409 四级] 黑白方块 题解
原题传送门
前言
天啊!上一周刚刚考完 \(CSP-J\) ,这一周就得去考 \(GESP\) 4级 (是的,你没有听错,我3级过了!)
所以,做了一道简单的题之后,我又来写题解了!
(仍然是WA++)
题目解析
哇,这题可真长啊!什…
SerpApi:一站式搜索引擎数据抓取API完全指南
本文详细介绍SerpApi这一实时搜索引擎数据抓取API的技术特性,包括GET请求示例、多语言库集成、JSON结构化数据输出、极速模式配置以及地理位置搜索等核心功能,帮助开发者快速集成搜索引擎数据到应用程序中。SerpApi:…
网站建设过程中什么最重要百度竞价怎么开户
1、 session持久化是什么? web服务器把 session中存储的属性存储到本地磁盘或数据库中;
2、为什么需要持久化? 因为 session是服务器维护会话状态的对象,即便客户端关闭连接或客户端长时间没有访问,服务器还依然存储…
网站备案中更名菜单设计制作模板免费
1. 获取时间
时间是个重要的编程元素,可用于计算间隔、同步服务器以及控制超时。
计算机中的时间分为以下两种形式:
墙钟时间:以12或24小时为周期不断重复,不同的地区和季节会因时区或夏令时而异。单调时间:从一个时…
中山公司网站建设小型企业网站建设报告
一. Windows下为PowerShell/CMD/Git设置代理 ——————————————————————————————————————————————————————
二. [WinError 10061] 由于目标计算机积极拒绝,无法连接。 keyerror:192。 HTTP Error 403: Forbidd…
海丰网站建设wordpress如何置顶
我一开始的想法是:后序遍历是左右根,那么第一个数小于第二个数,第二个数大于第三个数,然后从第三个数开始又循环,显然错了,因为我这种是理想情况,是一个满二叉树。正确的解法是:
class Solutio…
工信部网站备案系统登录机械网站建设公司
目录 一、了解什么是泛性编程
二、模版
1.函数模版
1.1 函数模板概念
1.2 函数模板格式
1.3 函数模板的原理
1.4 函数模板的实例化
1.5 模板参数的匹配原则
2.类模板
2.1 类模板的定义格式
2.2 类模板的实例化
3. 非类型模板参数 4. 模板的特化
4.1 概念
4.2 …
网站建设的价重庆网站建设团队
Yocto .bb 文件字段解析
本文详细讲解了 Yocto .bb 文件中各字段的作用和用法,包括 SECTION、SRC_URI、SUMMARY 等,旨在帮助开发者更好地理解和使用 Yocto 构建系统。
目录
1. SECTION 字段 1.1 SECTION 的作用1.2 SECTION 的用法1.3 如何使用 SECTIO…
人工智能ai写作网站免费asp net网站开发语言的特点
这里小程序开发中容易犯的错误-1写自定义目录标题 给客户做一个程序。需要在页面加载的时候在onLoad(options){}中加载定义好的函数,代码如下 onLoad(options) {get_week_()},运行时老报错 后来修改为正确的代码
onLoad(options) {this.get_week_()//必须加this},再…
wordpress建站教程简书建筑网站资料
分享88个表单按钮JS特效,总有一款适合您
88个表单按钮JS特效下载链接:https://pan.baidu.com/s/1v-qcl8bv2kxZ8a98Xo9UAg?pwd8888
提取码:8888
Python采集代码下载链接:采集代码.zip - 蓝奏云
学习知识费力气,…