windows .vscode的json文件配置 CMake 构建项目 调试窗口中文设置等

一、CMake 和 mingw64的安装和环境配置 

二、tasks.json和launch.json文件配置

  • tasks.json
{"version": "2.0.0","options": {"cwd": "${workspaceFolder}/build"},"tasks": [{"type": "shell","label": "cmake","command": "cmake","args": [".."]},{"label": "make","group": "build","command": "make","args": [],"problemMatcher": []},{"label": "Build","dependsOrder": "sequence","dependsOn": ["cmake","make"]},{"type": "cppbuild","label": "C/C++: g++ 生成活动文件",// "command": "/usr/bin/g++","command": "D://mingw64//bin//g++.exe","args": ["-fdiagnostics-color=always","-g","-o","${workspaceFolder}/bin/app.exe","-fexec-charset=GBK"],"options": {"cwd": "${workspaceFolder}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "D://mingw64//bin//g++.exe"}]
}
  • launch.json
{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) 启动","type": "cppdbg","request": "launch","program": "${workspaceFolder}/bin/app.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "gdb","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},],"preLaunchTask": "Build","miDebuggerPath": "D://mingw64//bin//gdb.exe", // 修改为你的 gdb 路径},]
}

 三、CMakeLists.txt文件

cmake_minimum_required(VERSION 3.15)
project(Cat)# C++ 的解决办法
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fexec-charset=GBK")include_directories(${PROJECT_SOURCE_DIR}/include)
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC_LIST)
# 添加可执行文件
add_executable(app main.cpp ${SRC_LIST})
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

四、头文件和源文件

  • cat.h
#ifndef CAT_H
#define CAT_H
#include <iostream>
#include <string>
class Cat{
public:Cat(std::string name, int age); // 构造函数,初始化姓名和年龄// Getterstd::string getName () const;int getAge() const;// Settervoid setName(std::string name);void setAge(int age);// printvoid printObj() const;~Cat();
private:std::string m_name; // 姓名int m_age; // 年龄
};
#endif
  • cat.cpp
#include "cat.h"
Cat::Cat(std::string name, int age) {this->m_name = name;this->m_age = age;
}std::string Cat::getName() const{return this->m_name;
}int Cat::getAge() const{return this->m_age;
}void Cat::setName(std::string name) {this->m_name = name;
}void Cat::setAge(int age) {this->m_age = age;
}void Cat::printObj() const{std::cout << "Cat(" << this << ")" << ": Name : " << this->m_name << ": Age : " << this->m_age << std::endl;
}Cat::~Cat() {std::cout<<"析构函数~"<<std::endl;
}
  • main.cpp
#include <iostream>
#include "cat.h"
using namespace std;int main(int argc,char *argv[]) {// 值Cat cat1("moon",3);         // const Cat cat1("moon",3);// const Obj 只能调用 const Methodcout<<cat1.getName()<<endl;cout<<cat1.getAge()<<endl;cat1.printObj();cat1.setName("黑猫警长");    cout<<cat1.getName()<<endl;// 指针const Cat *catPoint = &cat1;cout<<catPoint->getName()<<endl;cout<<catPoint->getAge()<<endl;catPoint->printObj();// 引用const Cat &catRef = cat1;cout<<catRef.getName()<<endl;cout<<catRef.getAge()<<endl;catRef.printObj();system("pause");return 0;
}

五、中文乱码问题解决

 CMake C/C++程序输出乱码
Clion CMake C/C++程序输出乱码_cmake message 乱码-CSDN博客https://blog.csdn.net/qq_37274323/article/details/120674592

# C的解决办法
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fexec-charset=GBK")
# C++ 的解决办法
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fexec-charset=GBK")

在此基础上,进一步来解决 VScode控制台中文乱码问题?(文章推荐)

(4 封私信 / 25 条消息) 如何解决VScode控制台中文乱码问题? - 知乎 (zhihu.com)https://www.zhihu.com/question/65557618/answer/2950382369?utm_id=0

  • 在tasks.json文件中添加:"-fexec-charset=GBK"

  • 接着,在设置中搜索"encoding",启用Auto Guess Encoding 

五、运行方式

方式一:1.先点击生成,可以生成所选目标

2.点击运行按钮,在终端窗口中启动所选目标 

方式二:按住F5运行,会出现调试窗口和终端窗口,也可以看变量等

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

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

相关文章

openssl3.2/test/certs - 074 - CT entry

文章目录 openssl3.2/test/certs - 074 - CT entry概述笔记setup074.shsetup074_sc1.shsetup074_sc2.shsetup074_sc3.shEND openssl3.2/test/certs - 074 - CT entry 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 setup074.sh #! /bin/bash# \file setup074.sh# o…

软件设计师——计算机网络(四)

&#x1f4d1;前言 本文主要是【计算机网络】——软件设计师——计算机网络的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1…

react中优化类名写法(类似与vue的动态class对象方式)

安装和引入方式 npm install classnamesimport classNames form classsnames//render 方法中&#xff0c;需要动态className的地方直接参照上图使用

【NodeJS JS】动态加载字体的各方式及注意事项;

首先加载字体这个需求基本只存在于非系统字体&#xff0c;系统已有字体不需要加载即可直接使用&#xff1b; 方案1&#xff1a;创建 style 标签&#xff0c;写入 font-face{font-family: xxx;src: url(xxx)} 等相关字体样式&#xff1b;将style标签添加到body里&#xff1b;方…

手机操作系统Android

▶1.Android系统概述 Andaid(读[安卓)由Coosle公司和开放手机联盟共同开发&#xff0c;它是基于Lmx内核的开源操作系统。Andtoid主要用于移动设备&#xff0c;如智能手机和平板计算机。2008年发布了第一部Andtoid智能手机&#xff0c;以后Android逐渐扩展到平板计算机、电视、…

C++学习| QT下载安装、VS配置QT

QT介绍 Qt&#xff1a;1991年由Qt Company开发的跨平台C图形用户界面应用程序开发框架。 应用&#xff1a;既可以开发GUI程序&#xff0c;也可用于开发非GUI程序&#xff0c;比如控制台工具和服务器。 对比MFC&#xff1a;MFC和QT两者都是用于C图形用户界面应用程序。 跨平…

c#反射用法

在 C# 中&#xff0c;反射是一种能够在运行时检查类型信息、访问属性和调用方法的机制。通过反射&#xff0c;你可以动态地操作类型、对象和程序集&#xff0c;而无需在编译时知道这些类型的具体信息。 反射提供了一组 API&#xff0c;可以让你在运行时获取和操作类型的信息。…

念念不忘智能编程,必有回响CodeArts Snap

开发者的碎碎念 之前在【我与ModelArts的故事】的文章里&#xff0c;分享过我学习新技术的经历&#xff0c;主要有&#xff1a; 自主学习&#xff0c;比如自学Python&#xff1b;借助华为云的产品边用边学。 在围着"编程学习"这座城池&#xff0c;外围来来回回转了…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM平台编程第六天-文件系统(物联技术666)

链接&#xff1a;https://pan.baidu.com/s/1VUc8cGI7bTtXuGepZZY3Ng?pwd1688 提取码&#xff1a;1688 1、windows和linux之间可以&#xff0c;利用samb服务器共享 2、linux和linux之间可以利用nfs共享 3、windows和linux还可以利用telnet &#xff1a; # telnetd WINDOWS上…

适用于 Windows 的 10 个最佳数据恢复工具学习

在数字时代&#xff0c;数据就是一切。从珍贵的家庭照片和重要的工作文档到最喜欢的音乐和电影&#xff0c;我们的生活越来越多地存储在各种设备上。系统崩溃、意外删除或恶意病毒都可能使您的宝贵数据瞬间消失。这就是数据恢复工具的用武之地。 10 个最佳数据恢复工具 这些软…

3 JS类型 值和变量

计算机对value进行操作。 value有不同的类型。每种语言都有其自身的类型集合。编程语言的类型集是该编程语言的基本特性。 value需要保存一个变量中。 变量的工作机制是变成语言的另一个基本特性。 3.1概述和定义 JS类型分为&#xff1a; 原始类型和对象类型。 原始类型&am…

消除游戏(第十三届蓝桥杯省赛C++C组 , 第十三届蓝桥杯省赛PythonA/B/研究生组)

在一个字符串 S 中&#xff0c;如果 SiSi−1 且 Si≠Si1&#xff0c;则称 Si 和 Si1 为边缘字符。 如果 Si≠Si−1 且 SiSi1&#xff0c;则 Si−1和 Si 也称为边缘字符。 其它的字符都不是边缘字符。 对于一个给定的串 S&#xff0c;一次操作可以一次性删除该串中的所有边缘…

python爬虫实战——自动话获取淘宝商品数据

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 开发环境: python 3.8 pycharm 专业版 三方库: DrissionPage >>> pip install DrissionPage 如何安装python第三方模块: win R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) …

go语言(十九)---- channel

channel的使用 //1. 发送value到channelchannel <- value //2. 接收并将其丢弃<- channel //3. 从channel中接收数据&#xff0c;并将其赋值给x x : <- channel 例子 package mainimport "fmt"func main() {//定义一个channelc : make(chan int)go func…

【数据结构与算法】5.详解双向链表的基本操作(Java语言实现)

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢迎各位大佬指点&…

SpringBoot之时间数据前端显示格式化

背景 在实际我们通常需要在前端显示对数据操作的时间或者最近的更新时间&#xff0c;如果我们只是简单的使用 LocalDateTime.now()来传入数据不进行任何处理那么我们就会得到非常难看的数据 解决方式&#xff1a; 1). 方式一 在属性上加上注解&#xff0c;对日期进行格式…

LeetCode.42. 接雨水

题目 题目链接 分析 读完本题以及结合题目给出的图我们可以很直观的看到&#xff0c;这道题目是让我们求形成凹槽的面积。 我们可以针对每一个数字形成凹槽的面积进行计算&#xff0c;然后相加数组每一个数字形成凹槽的面积即可。 那么问题来了&#xff0c;怎么知道一个数…

【Java与网络6】实现一个自己的HTTP浏览器

前面我们讨论了HTTP协议的基本结构和Socket编程的基本原理&#xff0c;本文我们来整个大活&#xff1a;自己实现一个简单的浏览器。 目录 1.主线程循环体 2.readHostAndPort()方法的实现 3.readHttpRequest()方法的实现 4.sendHttpRequest()方法的实现 5.readHttpRespons…

深度强化学习(王树森)笔记03

深度强化学习&#xff08;DRL&#xff09; 本文是学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接&#xff1a;https://github.com/wangshusen/DRL 源代码链接&#xff1a;https://github.c…

STM32——创建HAL库工程

第一步 新建工程文件夹 所有文件夹存放的内容&#xff1a; 第二步 拷贝/新建工程相关文件 1、Drivers&#xff08;创建如下文件夹&#xff0c;除readme.txt&#xff09; 文件夹存放的内容&#xff1a; 2、Middlewares和output暂时不需要创建&#xff08;目前用不到&#x…