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運行吧!一次成功!
希望我的這篇文章能夠幫到你,如果你哪里報錯了,可以評論留言,我看到了,我會解決這個錯誤就會耐心解答,本人能力也有限,希望大家都一次成功~~