VScode 配置 C语言环境

遇到的问题集合

  1. mingw官方下载网站(https://sourceforge.net/projects/mingw-w64/files/)更新之后,与网上大多数教程上写的界面不同了。

网上大多数教程让下载这个:

在这里插入图片描述
但是现在找不到这个文件。

  1. 写hello.c文件时,报错:无法找到stdio.h。听说解决办法在这“https://www.jianshu.com/p/a2a4bc46f30e”,但是对我无效。我的办法是重装vscode和mingw,重来一遍,可以了。

  2. build之后的hello.exe文件可以在vscode终端正确运行并打印出"hello world!",但是一调试就闪退,原因是编译生成的是x64程序,与电脑平台不兼容。虽然我的电脑是x64架构,但是不知道为什么在文件管理器中双击hello.exe文件,无法运行,显示我的电脑无法打开该文件。我的解决办法是:
    vscode中,ctrl+shift+P, 输入:
    在这里插入图片描述
    找到:
    在这里插入图片描述
    将windows-gcc-x64改为windows-gcc-x86,重新编译即可。

  3. 正常运行之后,无法调试。gdb似乎忽略了断点,直接运行完然后退出,表现出来的就是闪退。原因是编译时候没有加入-g选项。那么怎么加入-g选项呢?在task.json中加。

下面具体描述流程。

安装流程

  1. 下载mingw
    源代码网址:https://github.com/niXman/mingw-builds-binaries/releases
    下载这个x86_64-14.2.0-release-posix-seh-ucrt-rt_v12-rev0.7z:
    在这里插入图片描述
    下载完后解压到D:\appData\如下:
    在这里插入图片描述
    配置系统变量环境:
    D:\appData\mingw64\bin

cmd测试:
gcc -version
gdb -version
g++ -version

  1. 安装vscode

安装插件,这些都装上:
在这里插入图片描述
配置一些全局变量:
vscode中,ctrl+shift+P, 输入:
在这里插入图片描述
找到:
在这里插入图片描述
修改平台架构为x86。

在这里插入图片描述
填写自己的gcc路径。

ctrl+shift+P, 输入:C/C++: Select IntelliSense Configuration
在这里插入图片描述
我现在(完全配置好了)双击之后是这个:

在这里插入图片描述
但是第一次双击这个不是这个画面,是很奇怪的东西。那个时候我选的好像是Other这个选项。然后走一步看一步吧。复现不了了现在。

  1. 在桌面创建项目文件c_ex,项目结构如下:
    在这里插入图片描述
    c_cpp_properties.json文件内容如下:
{"configurations": [{"name": "windows-gcc-x64","includePath": ["${workspaceFolder}/**"],"compilerPath": "D:/appData/mingw64/bin/gcc.exe","cStandard": "${default}","cppStandard": "${default}","intelliSenseMode": "windows-gcc-x64","compilerArgs": ["-g","-o","test.exe"]}],"version": 4
}

launch.json文件内容如下:

{"version": "0.2.0","configurations": [{"name": "My Debug","type": "cppdbg","request": "launch","program": "c:/Users/whu_z/Desktop/c_ex/test.exe","args": [],"stopAtEntry": false,"cwd": "c:/Users/whu_z/Desktop/c_ex","environment": [],"externalConsole": true,"MIMode": "gdb","miDebuggerPath": "D:/appData/mingw64/bin/gdb.exe","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": false}],"preLaunchTask": "My build","miDebuggerArgs": "","filterStderr": false,"filterStdout": false},{"name": "C/C++ Runner: Debug Session","type": "cppdbg","request": "launch","args": [],"stopAtEntry": false,"externalConsole": true,"cwd": "c:/Users/whu_z/Desktop/c_ex","program": "c:/Users/whu_z/Desktop/c_ex/build/Debug/outDebug","MIMode": "gdb","miDebuggerPath": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}]}]
}

settings.json由vscode自动生成。

task.json内容如下:

{"version": "2.0.0","tasks": [{"label": "My build","type": "shell","command": "D:/appData/mingw64/bin/gcc.exe","args": ["c:/Users/whu_z/Desktop/c_ex/test.c","-g","-o","c:/Users/whu_z/Desktop/c_ex/test.exe"],"group": {"kind": "build","isDefault": true},"problemMatcher": ["$gcc"],"detail": "Generated task to build hello.c"}]
}

注意:当我写完hello.c文件后,vscode马上自动生成.vscode文件夹,里面有3个文件如上3个(除了tasks.json),但是内容不一样。我修改了除了settings.json文件的其它2个json文件内容,并添加了一个task.json文件。

hello.c文件内容如下:

#include <stdio.h>
#include <stdlib.h>int main(void) {int a = 1;int b = 2;int c = a + b;printf("%d", c);printf("hello, world!");system("pause");return 0;
}

一些感悟

tasks.json是用于设定如何编译文件的,设定编译动作。
launch.json是用于debug设置的。
c_cpp那个json文件用于配置编译器路径的。

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

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

相关文章

语音技术与人工智能:智能语音交互的多场景应用探索

引言 近年来&#xff0c;智能语音技术取得了飞速发展&#xff0c;逐渐渗透到日常生活和各行各业中。从语音助手到智能家居控制&#xff0c;再到企业客服和教育辅导&#xff0c;语音交互正以前所未有的速度改变着人机沟通的方式。这一变革背后&#xff0c;人工智能技术无疑是关键…

前端依赖安装指南

前端依赖安装指南 一、NVM管理工具安装 1.在 Windows 上安装 下载 NVM for Windows 的安装程序&#xff1a;(最新版本可以在 nvm-windows Releases 页面 找到)运行下载的安装程序并按步骤操作。 2.配置 NVM exe安装自动配置环境变量 3. 验证 NVM 安装 验证 NVM 是否成功…

使用sqlplus的easy connect时如何指定是链接到shared server还是dedicated process

在oracle配置了shared server的情况下 可以使用 :shared来指定链接到shared server也可以默认不指定 不指定的情况下会默认链接到shared server 如果想链接到 dedicated process 则必须显式指定链接到dedicated process server type的类型包括DEDICATED, SHARED, or POOLED. […

26个开源Agent开发框架调研总结(2)

根据Markets & Markets的预测&#xff0c;到2030年&#xff0c;AI Agent的市场规模将从2024年的50亿美元激增至470亿美元&#xff0c;年均复合增长率为44.8%。 Gartner预计到2028年&#xff0c;至少15%的日常工作决策将由AI Agent自主完成&#xff0c;AI Agent在企业应用中…

IOS HTTPS代理抓包工具使用教程

打开抓包软件 在设备列表中选择要抓包的 设备&#xff0c;然后选择功能区域中的 HTTPS代理抓包。根据弹出的提示按照配置文件和设置手机代理。如果是本机则会自动配置&#xff0c;只需要按照提醒操作即可。 iOS 抓包准备 通过 USB 将 iOS 设备连接到电脑&#xff0c;设备需解…

Java面试核心知识4

公平锁与非公平锁 公平锁&#xff08;Fair&#xff09; 加锁前检查是否有排队等待的线程&#xff0c;优先排队等待的线程&#xff0c;先来先得 非公平锁&#xff08;Nonfair&#xff09; 加锁时不考虑排队等待问题&#xff0c;直接尝试获取锁&#xff0c;获取不到自动到队尾…

在 Linux 下Ubuntu创建同权限用户

我是因为不小心把最开始创建的用户的文件夹颜色搞没了&#xff0c;再后来全白用习惯了&#xff0c;就不想卸载了&#xff0c;像创建一个和最开始创建的用户有一样的权限可以执行sudo -i进入root一样的用户 如图这是最原始的样子 第一步 创建新用户&#xff0c;我这里是因为之前…

Microsoft Sql Server 2019 函数理解

说到函数&#xff0c;首先和存储过程作个比较吧&#xff0c;两者有一个共同点都是预编译优化后存储在磁盘中&#xff0c;所以效率 要比T-SQL高一点点。值得注意的是&#xff0c;存储过程可以创建或访问临时表&#xff0c;而函数不可以&#xff1b; 同时函数不可 以修改表中的数…

依据正则表达式拦截文本

正则表达式匹配 因为我是go语言&#xff0c;所以展示golang的 包&#xff1a;"github.com/dlclark/regexp2" 更多欢迎访问&#xff1a;www.zpf0000.com // CanMatchRegexp return bool 某个字符串是否匹配正则表达式 func CanMatchRegexp(message string, regexpSt…

学习及笔记

1、计算md5 md5sum 文件名 2、跨服务器复制 scp 文件 目标用户名目标Ip:目标路径 3、curl curl -X POST http://10.105.2.46/getUerls -H "Content-Type: application/json" -d {"id": 379, "userId": "lyc", "password":…

【Unity插件】解决移动端UI安全区问题 - Safe Area Helper

在移动端设计界面时&#xff0c;必须要考虑的就是UI的安全区。 Unity本身也提供了Safearea的API。 但在asset store时已经有人提供了免费的插件&#xff08;Safe Area Helper&#xff09;&#xff0c;我们可以直接使用。 插件链接&#xff1a; https://assetstore.unity.com/p…

机器学习之随机森林算法实现和特征重要性排名可视化

随机森林算法实现和特征重要性排名可视化 目录 随机森林算法实现和特征重要性排名可视化1 随机森林算法1.1 概念1.2 主要特点1.3 优缺点1.4 步骤1.5 函数及参数1.5.1 函数导入1.5.2 参数 1.6 特征重要性排名 2 实际代码测试 1 随机森林算法 1.1 概念 是一种基于树模型的集成学…

OpenAI 故障复盘 - 阿里云容器服务与可观测产品如何保障大规模 K8s 集群稳定性

本文作者&#xff1a; 容器服务团队&#xff1a;刘佳旭、冯诗淳 可观测团队&#xff1a;竺夏栋、麻嘉豪、隋吉智 一、前言 Kubernetes(K8s)架构已经是当今 IT 架构的主流与事实标准&#xff08;CNCF Survey[1]&#xff09;。随着承接的业务规模越来越大&#xff0c;用户也在使…

面试:C++类成员初始化顺序

1、非静态数据成员&#xff1a;按它们在类定义的声明顺序初始化&#xff0c;不会按它们在初始化列表的顺序。 2、静态数据成员&#xff1a;在main函数启动之前&#xff0c;并且只初始化一次 3、基类构造函数&#xff1a;如果类从一个或多个基类继承而来&#xff0c;基类的构造…

Vue.js 使用插槽(Slots)优化组件结构

Vue.js 使用插槽&#xff08;Slots&#xff09;优化组件结构 今天我们聊聊 Vue.js 的一个超实用功能——插槽&#xff08;Slots&#xff09;。插槽是 Vue 组件开发中的神器&#xff0c;用好它&#xff0c;你可以让组件变得更灵活、更可复用&#xff0c;还能写出优雅的代码结构…

SpringBoot 使用 Cache 集成 Redis做缓存保姆教程

1. 项目背景 Spring Cache是Spring框架提供的一个缓存抽象层&#xff0c;它简化了缓存的使用和管理。Spring Cache默认使用服务器内存&#xff0c;并无法控制缓存时长&#xff0c;查找缓存中的数据比较麻烦。 因此Spring Cache支持将缓存数据集成到各种缓存中间件中。本文已常…

机器学习全流程解析:数据导入到服务上线全阶段介绍

目录 1. 数据导入 2. 数据预处理 3. 超参数搜索与优化 4. 模型训练 5. 模型评估 6. 模型压缩与优化 7. 模型注册与版本管理 8. 服务上线与部署 总结 1. 数据导入 数据源&#xff1a;数据库、文件系统、API等。数据格式&#xff1a;CSV、JSON、SQL 数据库表、Parquet …

MySQL —— 在CentOS9下安装MySQL

MySQL —— 在CentOS9下安装MySQL 1.查看自己操作系统的版本2.找到对应的安装源3.上传我们在windows下&#xff0c;下载的文件&#xff0c;解压4.执行rpm命令&#xff0c;启用MySQL8仓库5.执行dnf install -y mysql-community-server6.设置开机自启动7.获得初始密码8.登录MySQL…

Center Loss 和 ArcFace Loss 笔记

一、Center Loss 1. 定义 Center Loss 旨在最小化类内特征的离散程度&#xff0c;通过约束样本特征与其类别中心之间的距离&#xff0c;提高类内特征的聚合性。 2. 公式 对于样本 xi​ 和其类别yi​&#xff0c;Center Loss 的公式为&#xff1a; xi​: 当前样本的特征向量&…

AI在软件工程教育中的应用与前景展望

引言 随着科技的快速发展&#xff0c;软件工程教育面临着前所未有的挑战与机遇。传统的教学模式逐渐无法满足快速变化的行业需求&#xff0c;学生们需要更多的实践经验和个性化的学习方式。而在这样的背景下&#xff0c;人工智能&#xff08;AI&#xff09;作为一项创新技术&a…