VSCode配置MSVC+VSCode使用easyx库,2021.5.13日配置~~

2023-10-26

VSCode配置MSVC+VSCode使用easyx库,2021.5.13日配置~~

想必很多人和我一样,想用vscode编程c++,easyx库不支持MinGW,一般人都是直接使用vs2019安装easyx库用来GUI编程,那么爱折腾的VSCode用户,就很难受,其实不然,解决方法很简单,我们只需要在VSCode中配置MSVC编译环境,再配置一下json就可以了,今天我也是看了网上很多资料,刚刚配置成功,总结一下我的经历吧,因为使用现在网上现有的文章进行配置第一次按照这个配置的,一直在报错,最后还是被我给看穿了,因为是很低级的错误,话不多说,干!!!

1.配置MSVC编译环境

这一步是必须的,其实官方给出了教程,动手能力强的可以直接跟随这个,官方给出的方法,我这里详细说一下~~

(1)下载vs并安装c++桌面开发组件即可

如果是第一次安装vs,那么点击使用c++的桌面开发,即可默认包括MSVC~~

图片

(2)使用VS的命令提示符进入你想要打开的文件夹

最好跟我一起,新建一个新的文件夹,如果你是第一次配置,可以先在你想要配置的地方建立一个文件夹,如下图所示,记住你文件夹的地址,或者直接复制地址~~

图片

使用windows自带搜索工具搜索Developer Command Prompt,右键管理员模式打开(其实可以不用管理员模式打开,忽视他吧,你就跟我步骤来肯定一次成功)

图片

当然第一次你先试一下cl.exe查看是否成功安装C++编译器,出现版号即成功

图片

之后输入

code D:\testEasyx\demo          \\这里的路径是你刚刚建立的文件夹路径

图片

(3)使用MSVC环境输出你的第一个程序

之后你的vscode就会被打开

图片

这里就是我们打开的文件夹,我们点击这里的加号,新建文件,取个名字叫easyxdemo.cpp吧~~

图片

在这里,我们先复制一下官方给出的cpp文件

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};

    for (const string& word : msg)
    {
        cout << word << " ";
    }
    cout << endl;
}

按Ctrl+F5,或者点击导航栏的运行->以非调试模式启动,这时会让我们选择编译环境,我们是msvc所以选第二个,c++(Windows)

图片

之后会弹出这个cl.exe,我们选择这个即可

图片

再之后就会变成这样,恭喜你,我们的MSVC环境成了~~

图片

同时我们会注意到,这里自动帮我们生成了tasks.json文件,这个在后面的easyx库配置很重要,是主要报错点,当然现在还不是主要报错点~~

图片

2.安装easyx库

官网链接,直接选择这里的下载,直接安装到你的vs2019里~~

图片

!!!重点

修改easyx库文件的路径

如果你的vs2019是c盘默认的安装路径的话,那么easyx头文件和库文件会默认安放到如下文件夹下:

C:\Program Files (x86)\Microsoft VisualStudio\2019\Community\VC\Auxiliary\VS\lib\x64

C:\Program Files(x86)\Microsoft VisualStudio\2019\Community\VC\Auxiliary\VS\lib\x86

C:\Program Files (x86)\Microsoft VisualStudio\2019\Community\VC\Auxiliary\VS\include

如果你的vs2019安装路径是你自定义的话,easyx头文件和库文件其实也会默认安放到\Auxiliary\VS\lib\x64,\Auxiliary\VS\lib\x86和\VC\Auxiliary\VS\include下,前面的路径是你的ide下载路径如图所示~~

图片

图片

图片

图片

!!!重点

此时我们需要做的事情就是,把这6个文件,分别放在\VC\Tools\MSVC\14.28.29333\lib\x64,\VC\Tools\MSVC\14.28.29333\lib\x86和\VC\Tools\MSVC\14.28.29333\include路径下,也就是将原来\Auxiliary\VS\lib\x64下的EasyXa.lib和EasyXw.lib复制到\VC\Tools\MSVC\14.28.29910\lib\x64路径下,\Auxiliary\VS\lib\x86下的EasyXa.lib和EasyXw.lib复制到\VC\Tools\MSVC\14.28.29910\lib\x86,还有\VC\Auxiliary\VS\include下的easyx.h和graphics.h复制到\VC\Tools\MSVC\14.28.29910\include路径下,慢慢来,耐心做,很简单的~~

3.返回我们的VSCode,配置与编译第一个使用easyx库的文件

来了,重头戏来了,这里我网上找了一个代码,仅供测试使用,直接将我们刚刚easyxdemo.cpp里编写的helloworld全部替换成这个代码,就是用来测试,配置,与检测是否成功的~~

原代码作者blog链接,这里我们用来测试~~

#include <graphics.h>
#include <conio.h>
#include <math.h>
#define Width 640
#define Height 480
#define PI 3.14159
int main()
{
 // 初始化绘图窗口
 initgraph(640, 480, SHOWCONSOLE);
 //秒针起始坐标
 int center_x = Width / 2, center_y = Height / 2;
 //秒针终点坐标
 int secondEnd_x, secondEnd_y;
 //分针终点坐标
 int minuteEnd_x, minuteEnd_y;
 //时针终点坐标
 int hourEnd_x, hourEnd_y;
 //秒针长度
 int secondLength = Width / 4;
 //分针长度
 int minuteLength = Width / 5.5;
 //时针长度
 int hourLength = Width / 7;
 //秒针对应转到角度
 float secondAngle = 0;
 //分针对应转到角度
 float minuteAngle = 0;
 //时针对应转到角度
 float hourAngle = 0;
 //定义变量存储系统时间
 SYSTEMTIME ti;
 BeginBatchDraw();
 while (1)
 {
  setfillcolor(YELLOW);
  setlinestyle(PS_DASHDOTDOT, 5);
  setlinecolor(0x555555);
  circle(center_x, center_y, secondLength + 30);
  setcolor(0xAAAAAA);
  setlinestyle(PS_DOT | PS_ENDCAP_SQUARE, 2);
  circle(center_x, center_y, secondLength + 15);
  for (int i = 0; i < 12; i++)
  {
int x = center_x + cos(i * 30.0 / 360 * 2 * PI) * (secondLength + 15.0);
   int y = center_y - sin(i * 30.0 / 360 * 2 * PI) * (secondLength + 15.0);
    fillcircle(x, y, 5);
  }
  GetLocalTime(&ti);
  secondAngle = (ti.wSecond / 60.0) * (2 * PI);
  minuteAngle = (ti.wMinute / 60.0) * (2 * PI);
  hourAngle = ((ti.wHour % 12) / 12.0) * (2 * PI) + (ti.wMinute / 60.0) * (2 * PI / 12.0);
  secondEnd_x = center_x + secondLength * sin(secondAngle);
  secondEnd_y = center_y - secondLength * cos(secondAngle);
  minuteEnd_x = center_x + minuteLength * sin(minuteAngle);
  minuteEnd_y = center_y - minuteLength * cos(minuteAngle);
  hourEnd_x = center_x + hourLength * sin(hourAngle);
  hourEnd_y = center_y - hourLength * cos(hourAngle);
  //画秒针
  setlinestyle(PS_SOLID, 1);
  setcolor(WHITE);
  line(center_x, center_y, secondEnd_x, secondEnd_y);
  //画分针
  setlinestyle(PS_SOLID, 2);
     setcolor(GREEN);
  line(center_x, center_y, minuteEnd_x, minuteEnd_y);
  //画时针
  setlinestyle(PS_SOLID, 5);
  setcolor(RED);
  line(center_x, center_y, hourEnd_x, hourEnd_y);
  FlushBatchDraw();
  setlinestyle(PS_SOLID, 1);
  setcolor(BLACK);
  line(center_x, center_y, secondEnd_x, secondEnd_y);
  setlinestyle(PS_SOLID, 2);
  setcolor(BLACK);
  line(center_x, center_y, minuteEnd_x, minuteEnd_y);
  setlinestyle(PS_SOLID, 5);
  setcolor(BLACK);
  line(center_x, center_y, hourEnd_x, hourEnd_y);
 }
 EndBatchDraw();
 system("pause");
 closegraph();
 return 0;
}

这里我们会发现已经可以使用graphics.h头文件了~~

图片

但是还需要进行一步配置,还记得tasks.json么,对,就是要配置他~~

这里我们默认时是这样的~~

图片

现在将他改为这样~~

原来的type:"cppbuild"改为shell,

在args中添加链接所需.lib~~

图片

方便大家复制,这里贴出~~

{
    "tasks": [
        {
            "type": "shell",//需要改为shell
            "label": "C/C++: cl.exe 生成活动文件",
            "command": "cl.exe",
            "args": [
                "/Zi",
                "/EHsc",
                "kernel32.lib",//这里开始
				"gdi32.lib",
				"winspool.lib",
				"comdlg32.lib",
				"advapi32.lib",
				"shell32.lib",
				"ole32.lib",
				"oleaut32.lib",
				"uuid.lib",
				"odbc32.lib",
				"odbccp32.lib",
				"user32.lib",//这里结束
                "/nologo",
                "/Fe:",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "${file}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$msCompile"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

Ctrl+F5运行吧!一次成功!

图片

希望我的这篇文章能够帮到你,如果你哪里报错了,可以评论留言,我看到了,我会解决这个错误就会耐心解答,本人能力也有限,希望大家都一次成功~~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VSCode配置MSVC+VSCode使用easyx库,2021.5.13日配置~~ 的相关文章

  • 列出 C 常量/宏

    有没有办法使GNU C 预处理器 cpp 或其他一些工具 列出给定点上的所有可用宏及其值C file 我正在寻找特定于系统的宏 同时移植一个已经精通 UNIX 的程序并加载一堆稀疏的 UNIX 系统文件 只是想知道是否有比寻找定义更简单的方
  • 将列表元素分组到字典中

    我有一个包含 8 个元素的列表 ConfigFile ControllerList 该列表的类型为 List
  • Word Automation - 禁用警报

    我正在自动化 Word 因此我想抑制所有警报 Word Application word new Word Application word DisplayAlerts Microsoft Office Interop Word WdAle
  • ServiceStack 验证并不总是触发

    因此 我尝试使用 RavenDB 和 ServiceStack 构建端到端集成测试套件 但遇到了一个非常奇怪的问题 即验证无法对某些请求运行 这真的很奇怪 我不确定我做错了什么 我正在使用 NCrunch 有时测试通过 有时失败 希望这是一
  • Windows 上任何单个进程可以寻址的最大内存量

    Windows 版本的内存限制 http msdn microsoft com en us library windows desktop aa366778 28v vs 85 29 aspx回答 Windows 上任何单个进程可以寻址的最
  • 如何使用C#检测IIS版本?

    如何使用C 检测IIS版本 更新 我的意思是来自 winapp 实际上该场景是开发一个自定义安装程序 想要检查已安装 IIS 的版本以调用适当的 api 在这里找到了答案 链接文本 http forums iis net p 1162404
  • 使用回溯(而不是 DFS)背后的直觉

    我正在解决单词搜索 https leetcode com problems word search description LeetCode com 上的问题 给定一个 2D 板和一个单词 查找该单词是否存在于网格中 该单词可以由顺序相邻单
  • 在长时间运行期间发送 Windows 消息?

    我在运行的大型操作中收到以下消息 CLR 无法转换 从 COM 上下文 0x1fe458 到 COM 上下文 0x1fe5c8 60 秒 这 拥有目的地的线程 上下文 公寓最有可能 要么进行非抽水等待 要么 处理很长时间的运行 无需泵送 W
  • 如何在cmake中添加cuda源代码的定义

    我使用的是 Visual Studio 2013 Windows 10 CMake 3 5 1 一切都可以使用标准 C 正确编译 例如 CMakeLists txt project Test add definitions D WINDOW
  • 将 XML 转换为 JSON 时保留 json:Array 属性

    我有一段 XML 看起来像
  • 欢迎消息在网络聊天中不可见,但可以在模拟器中使用

    IConversationUpdateActivity update message using var scope Microsoft Bot Builder Dialogs Internals DialogModule BeginLif
  • std::mutex 和 std::shared_mutex 之间的区别

    我遇到了一个std shared mutex in C 17 到底是什么std shared mutex以及它有何不同std mutex 如中所述文档 http en cppreference com w cpp thread shared
  • Compact Framework 3.5 上的 System.Data.SQLite 问题

    我在我的紧凑框架应用程序中使用 sqlite 来记录系统中的事件 我也在使用系统 数据 SQLite http sqlite phxsoftware com 该事件具有描述其发生时间的时间戳 我将此时间戳记作为刻度存储在我的表中 除此列外
  • 仅使用 url 嵌入视频

    给定一个 youtube url 我如何使用 net c 将视频嵌入到页面中 只需添加如下一行 将 autoplay 设置为 0 或 1 取决于您是否希望人们真正留在您的页面上
  • GoogleTest:如何跳过测试?

    使用 Google Test 1 6 Windows 7 Visual Studio C 如何关闭给定的测试 又名如何阻止测试运行 除了注释掉整个测试之外 我还能做些什么吗 The docs https github com google
  • BackgroundWorker 如何决定在哪个线程上运行 RunWorkerCompleted 处理程序?

    我试图弄清楚 BGW 在工作完成后如何决定运行 RunWorkerCompleted 处理程序的线程 我的初始测试使用 WinForm 应用程序 在 UI 线程上 我开始bgw1 RunWorkerAsync 然后我尝试开始bgw2 Run
  • 在 C# 中同步闪烁标签

    我创建了一个BlinkingLabel类 源自Forms Label 其中有一个Forms Timer这允许我启用和禁用闪烁效果 我创建了 4 个标签BlinkingLabel类型 我的问题是 如果所有 4 个标签在不同时间闪烁 则闪烁效果
  • 指针 (*argv[]) 的指针的指针算术?

    我知道foo bar 等于 foo bar 但是什么是 foo bar 等于 例如访问 argv 2 我对这一点的理解有些困惑 我认为可能是这样的 foo bar 但我不确定 如果这是一个简单的答案 我深表歉意 a b 相当于 a b 由于
  • 如何使用va_start()?

    在具有可变参数的函数中 我们使用函数 va start 初始化 va list ap 类型的对象 如下所示 void va start va list ap parmN 我不明白1 什么类型的对象可以作为 parMN 最后一个已知参数 传递
  • 在 C 中打印字符串的所有排列

    我正在学习回溯和递归 并且我陷入了打印字符串所有排列的算法 我用以下方法解决了它贝尔算法 http programminggeeks com bell algorithm for permutation 用于排列 但我无法理解递归方法 我在

随机推荐

  • myeclipse或sts启动时building workspace加载很长时间

    解决方法 Preference gt General gt Starup and Shutdown勾选Refresh workspace on startup完成 这样每次启动项目时重新加载工作空间 等于重新导入了一份项目 就省去了代码的校
  • esp32 作 MCU 端 使用 AT 命令对 esp8266 进行 OTA demo

    AT CUSTOTA total len current packet len offset checksum OK MCU 收到 gt 之后发送 data 当前数据写入到 FLASH 之后 打印 RECV OK 当接收到 total le
  • 解决Python OpenCV 读取IP摄像头(RTSP等)出现error while decoding的问题

    先来看一个简单的读取RTSP的示例程序 import cv2 cap cv2 VideoCapture rtsp admin admin 123 172 0 0 0 ret frame cap read while ret ret fram
  • 测试两个容器是否连通

    进入容器查看ip root f2b5cdfdc5ed private geth ip addr 1 lo
  • 如何打开Fedora 15命令行窗口CLI

    如何打开Fedora 15命令行窗口CLI 在DesktopFolder以外的桌面区域 右击可以看到Konsole 点击该快捷键 即可启动命令行窗口CLI 第一步 右击桌面 第二步 点击Konsole
  • python day03

    一 使用字符串 str helllo len str 用len函数求字符串长度 str upper 把字符串中的小写变成大写 str find 查找子串所在位置 str index 与find类似但找不到子串时会报错 str 2 从字符串中
  • c++ string函数详细返回值及用法!

    通过在网站上的资料搜集 得到了很多关于string类用法的文档 通过对这些资料的整理和加入一些自己的代码 就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了 下面先罗列出string类的函数有哪一些 然后再罗列出函数的原型
  • 学习 Python 之 Pygame 开发魂斗罗(一)

    学习 Python 之 Pygame 开发魂斗罗 一 Pygame 回忆Pygame 1 使用pygame创建窗口 2 设置窗口背景颜色 3 获取窗口中的事件 4 在窗口中展示图片 1 pygame中的直角坐标系 2 展示图片 3 给部分区
  • 在中国,把区块链玩得转的公司有这几家

    时下最火的Fintech 金融科技 非区块链莫属 区块链正在成为国家层面规划的重点领域之一 区块链可以简单理解为一个由所有参与者公共维护的账本 账本信息的公开使得所有参与者可以一起来校验记账的正确性 使得区块链成为所有参与者可以信任的载体
  • ubuntu编译和安装opencv-3.4.13

    1 安装相关软件包 打开ubuntu 安装以下工具 sudo apt install build essential sudo apt install cmake git libgtk2 0 dev pkg config libavcode
  • 芯片验证从零开始系列(一)——芯片验证概论

    芯片验证从零开始系列 一 芯片验证概论 芯片开发流程 动态验证技术 静态验证技术 Emulation和FPGA原型开发 测试平台框架 检查设计 回归测试 声明 未经作者允许 禁止转载 推荐一个IC FPGA新手入门的好网站 快 点 击 进
  • STL源码剖析-Allocator

    一 第一级配置器 顾名思义 Allocator是用来做内存分配的 第一级配置器指的是当需要128bytes以上的内存时直接使用malloc和realloc进行内存分配 代码如下 第一级配置器 2023 04 07 template
  • 解决M1处理器款mac安装PR闪退问题 Premier 2020 Mac(已适配M1芯片,支持最新款M1芯片Mac)可稳定运行

    苹果公司最新发布的基于M1芯片的Mac笔记本电脑应该很多小伙伴都入手了 但是最新的Mac由于采用的是基于ARM架构的核心 对很多基于Intel 英特尔 处理器的老款mac的软件应用兼容不太好 导致很多现有软件安装好后无法运行 或者报错和闪退
  • elasticsearch query related

    public abstract class EsBaseDaoImpl
  • 汽车电子_EMC测试_RE试验整改

    测试设备DUT状态 DUT带壳 未安装导电泡棉 辐射抗扰度试验 辐射抗扰度试验 270MHz频段出现画面卡死 试验暂停未继续 BCI试验 CBCI出现故障 RE试验 30 200M H方向 Frequency MHz MaxPeak dB
  • Maven高级:多环境配置与应用

    Maven高级 Maven高级 分模块开发 Maven高级 依赖管理 Maven高级 聚合和继承 Maven高级 根据需求完成生成 开发 测试环境 并在各个环境间切换运行 一 多环境配置与应用 这一节中 我们会讲两个内容 分别是多环境开发和
  • vue3 antd 表格点击和点击背景色

    页面
  • win7在64位系统下编译openssl

    以前在笔记本上配置过openssl 0 9 8g版本 今天在公司的台式机上配置死活没配置成功 机器的系统是win7 64位 编译openssl 1 0 1e出现各种莫名的错误 最后无意中编译了1 0 0 a版本编译成功了 如果出现ml找不到
  • Selenium-Server-Standalone搭建

    一 概述 先说说背景吧 Selenium是一个优秀的自动化测试框架 可以模拟浏览器的各种操作来代替人工操作 不同的浏览器有 不同的driver来驱动 之前项目中使用的firefoxDriver chromeDriver有一个缺点 就是浏览器
  • VSCode配置MSVC+VSCode使用easyx库,2021.5.13日配置~~

    VSCode配置MSVC VSCode使用easyx库 2021 5 13日配置 想必很多人和我一样 想用vscode编程c easyx库不支持MinGW 一般人都是直接使用vs2019安装easyx库用来GUI编程 那么爱折腾的VSCod