use vscode mingw cmake on windows

记住mingw去官网下面的MingW-W64-builds, 下这个版本
x86_64-13.1.0-release-posix-seh-ucrt-rt_v11-rev1.7z
posix很重要, win32版本没线程支持,用到会报错

可以测试下是否能正常运行

#include <thread>
#include <mutex>
#include <condition_variable>
#include <iostream>std::thread second_workthread;
std::mutex mtx;
std::condition_variable objectDetectorRun;

task.json
安好mingw, cmake

{"version": "2.0.0","windows": {"options": {"shell": {"executable": "powershell"}}},"type": "shell","options": {"cwd": "${workspaceRoot}"},"tasks": [{"label": "cmake","linux": {"command": "cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Debug .."},"windows": {"command": "cmake -G 'MinGW Makefiles' .."},"type": "shell","dependsOn": "_makebuildfolder","options": {"cwd": "${workspaceRoot}/build"},"presentation": {"echo": true,"reveal": "always","panel": "shared"},"problemMatcher": [],"group": "build"},{"label": "make","linux": {"command": "make -j 8"},"windows": {"command": "mingw32-make -j 4"},"options": {"cwd": "${workspaceRoot}/build"},"presentation": {"echo": true,"reveal": "always","panel": "shared"},"isBuildCommand": true,"problemMatcher": [],"group": "build"},{"label": "_makebuildfolder","type": "shell","linux": {"command": "mkdir -p ${workspaceFolder}/build"},"windows": {"command": "mkdir -Force ${workspaceFolder}/build"},"problemMatcher": [],"group": "build"},{"label": "copy_raw","type": "shell","linux": {"command": "mkdir -p ${workspaceFolder}/build"},"windows": {"command": "Copy ${workspaceFolder}/*.raw ${workspaceFolder}/build "}},{"label": "run","args": ["32"],"windows": {"command": "${command:cmake.launchTargetPath}"},"options": {"cwd": "${workspaceRoot}/build"},},{"label": "runwithbuild","args": ["32"],"windows": {"command": "${command:cmake.launchTargetPath}"},"dependsOrder": "sequence", //tj : make sure exe deps in order"dependsOn": ["cmake", "make", "copy_raw"],"options": {"cwd": "${workspaceRoot}/build"},}]
}

对于opencv, 要么自己用Mingw编译, 要么下载现存的, 我这里下的现成的https://github.com/huihut/OpenCV-MinGW-Build

cmake_minimum_required( VERSION 3.5 )
project( main )set(CMAKE_CXX_FLAGS "-std=c++14")
set (OpenCV_DIR C:\\Software\\OpenCV-MinGW-Build)
find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})add_executable( main main.cpp )
target_link_libraries( main ${Pangolin_LIBRARIES} )

debug的话

launch.json

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch","targetArchitecture": "x86","program": "${command:cmake.launchTargetPath}",// "program": "${workspaceFolder}/build/main.exe",// "program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": ["32"],//左边启动debug, 从这里pick up args"stopAtEntry": false,"cwd": "${workspaceFolder}/build","environment": [{"name": "PATH","value": "${env:Path};C:\\Workspace\\v-nova\\build"//这里设置错了,容易出现Unable to start debugging. Unexpected GDB output from command “-exec-run“}],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "C:/Software/mingw64/bin/gdb.exe","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],}]
}

需要配置用 cmake:configure with cmake debugger

在这里插入图片描述

注意最下面的状态栏, 如果没有设置点进去设置
另外 cmake可能会让把

C:\Software\OpenCV-MinGW-Build\x64\mingw\bin

加入环境变量

如果传参在launch.json 不work的话, 在setting.json里面加上

从状态栏启动debug的话, 设置 args要在setting.json里面

{"cmake.configureOnOpen": false,"files.associations": {"ostream": "cpp","mutex": "cpp","array": "cpp","string": "cpp","string_view": "cpp"},"C_Cpp.default.compilerPath": "C:\\Software\\mingw64\\bin\\g++.exe","cmake.debugConfig": {"args": ["32"//下面启动debug从这里Pick up args]}
}

从左边启动debug的话, args在launch.json里面设置

https://github.com/microsoft/vscode-cmake-tools/issues/121

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/78299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MFC-GetAdaptersAddresses获取网卡信息

需要:#pragma comment(lib, "IPHLPAPI.lib") GetAdaptersAddresses函数参数说明 ULONG bufferSize = 0;ULONG result = ::GetAdaptersAddresses(AF_UNSPEC, GAA_FLAG_INCLUDE_PREFIX, nullptr, nullptr, &bufferSize);/*参数1:ULONG Family 网络协议族,此参…

Android学习之路(14) Context详解

一. 简介 在 Android 开发中、亦或是面试中都离不开四大组件的身影&#xff0c;而在创建或启动这些组件时&#xff0c;并不能直接通过 new 关键字后跟类名来创建实例对象&#xff0c;而是需要有它们各自的上下文环境&#xff0c;也就是本篇文章要讨论的 Context。 1.1 Contex…

线性回归方程

性回归是利用数理统计中的回归分析来确定两种或两种以上变数间相互依赖的定量关系的一种统计分析方法&#xff0c;是变量间的相关关系中最重要的一部分&#xff0c;主要考查概率与统计知识&#xff0c;考察学生的阅读能力、数据处理能力及运算能力&#xff0c;题目难度中等&…

uniapp 下拉框数据回显的问题

问题 : 现在是下拉框数据回显不了, 绑定的v-model 原因 : uniui 下拉框数据绑定要是 value text 这种格式的 解决办法: 将获取到的后端数据 转换为 需要的格式 ,再进行绑定 下拉框的数据 遍历

【操作系统】进程的概念、组成、特征

概念组成 程序&#xff1a;静态的放在磁盘&#xff08;外存&#xff09;里的可执行文件&#xff08;代码&#xff09; 作业&#xff1a;代码&#xff0b;数据&#xff0b;申请&#xff08;JCB&#xff09;&#xff08;外存&#xff09; 进程&#xff1a;程序的一次执行过程。 …

电脑磁盘清理怎么做?2个方法,轻松释放内存!

“我电脑里的垃圾文件好像太多了&#xff0c;想给电脑做个全面的磁盘清理&#xff0c;我应该怎么操作呢&#xff1f;” 在计算机的使用中&#xff0c;定期进行电脑磁盘清理是至关重要的。这不仅可以帮助您释放宝贵的磁盘空间&#xff0c;还能提升系统性能和维护电脑的正常运行。…

Redis 核心数据结构理论解析

一、简述 redis是一个开源的使用C语言编写的一个kv存储系统&#xff0c;是一个速度非常快的非关系远程内存数据库。它支持包括String、List、Set、Zset、hash五种数据结构。 除此之外&#xff0c;通过复制、持久化和客户端分片等特性&#xff0c;用户可以很方便地将redis扩展…

Linux(下)

一、 对netstat的补充 1.进程管理 在杀死进程时&#xff0c;不可以杀死其他用户的进程。 查看指定进程时&#xff0c;下图的第二行 是ps -ef | grep tail 命令执行的进程 kill -9 进程号 也可以写作 kill -s 9 进程号 机器人&#xff1a; 2.查看主机状态 将进程的信息分三…

国家信息中心举办“数字政府建设暨数字安全技术”研讨会:海云安提出数字政府软件供应链安全解决方案

近日&#xff0c;由国家信息中心主办&#xff0c;复旦大学研究院承办的“数字政府建设暨数字安全技术研讨会”在义乌顺利召开。国家信息中心信息与网络安全部副主任禄凯&#xff0c;复旦大学党委常委、宣传部部长陈玉刚&#xff0c;义乌市委常委、常务副市长喻新贵为会议致辞。…

Apollo介绍和入门

文章目录 Apollo介绍配置中心介绍apollo介绍主流配置中心功能特性对比 Apollo简介 入门简单的执行流程Apollo具体的执行流程Apollo对象执行流程分步执行流程 核心概念应用&#xff0c;环境&#xff0c;集群&#xff0c;命名空间企业部署方案灰度发布全量发布 配置发布的原理发送…

使用共享 MVI 架构实现高效的 Kotlin Multiplatform Mobile (KMM) 开发

使用共享 MVI 架构实现高效的 Kotlin Multiplatform Mobile (KMM) 开发 文章中探讨了 Google 提供的应用架构指南在多平台上的实现。通过共享视图模型&#xff08;View Models&#xff09;和共享 UI 状态&#xff08;UI States&#xff09;&#xff0c;我们可以专注于在原生端…

leetcode 2. 两数相加

2023.9.14 这道题还是有点难度&#xff0c; 需要维护一个进位值&#xff0c;构造一个虚拟头节点dummy&#xff0c;用于结果的返回&#xff0c;还要构造一个当前节点cur&#xff0c;用于遍历修改新链表。 整体思路就是长度短的链表需要补0&#xff0c;然后两链表从头开始遍历相加…

GaussDB技术解读系列:运维自动驾驶探索

近日&#xff0c;在第14届中国数据库技术大会&#xff08;DTCC2023&#xff09;的GaussDB“五高两易”核心技术&#xff0c;给世界一个更优选择专场&#xff0c;华为云数据库运维研发总监李东详细解读了GaussDB运维系统自动驾驶探索和实践。 随着企业数字化转型进入深水区&…

string

目录 六、STL简介 (一)什么是STL (二)STL的版本 (三)STL六大组件 七、string (一)标准库中的string 1、string类 2、string常用的接口 1)string类对象的常见构造 2)string类对象的容量操作 3)string类对象的访问及遍历操作 4)string类对象的修改操作 5)string类非成…

帧结构的串行数据接收器——Verilog实现

用Verilog 实现一个帧结构的串行数据接收器&#xff1b; 串行数据输入为&#xff1a;NRZ数据加位时钟&#xff08;BCL&#xff09;格式&#xff0c;高位在前 帧结构为&#xff1a;8位构成一个字&#xff0c;64字构成一个帧。每帧的第一个字为同步字。同步字图案存储在可由CPU读…

9. xaml ComboBox控件

1.运行图像 2.运行源码 a.Xaml源码 <Grid Name="Grid1"><!--IsDropDownOpen="True" 默认就是打开的--><ComboBox x:Name="co

Spark集成hudi创建表报错

环境描述: hudi版本:0.13.1 spark版本:3.3.2 Hive版本:3.1.3 Hadoop版本:3.3.4 问题1: 描述:按照官方文档运行spark-sql创建spark的hudi表报错 建表语句: CREATE TABLE stg.spark_mor_test_01 (uuid string,name string,age int,ts …

useGetState自定义hooks解决useState 异步回调获取不到最新值

setState 的两种传参方式 1、直接传入新值 setState(options); const [state, setState] useState(0); setState(state 1); 2、传入回调函数 setState(callBack); const [state, setState] useState(0); setState((prevState) > prevState 1); // prevState 是改变之…

【网络教程】超越平凡:一文揭示SSH-keygen的神秘世界

SSH(Secure Shell)是一种网络协议,用于安全地连接到远程计算机。SSH-keygen 是 SSH 协议的一部分,用于生成、管理和转换身份验证密钥对。 SSH-keygen 命令的基本语法如下: ssh-keygen [选项]以下是 ssh-keygen 命令的一些常用选项和参数: -t:指定要生成的密钥类型。例如…

Python实现猎人猎物优化算法(HPO)优化Catboost分类模型(CatBoostClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…