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