/*
刚刚成功了
使用 VScode + EasyX
GCC编译器:gcc version 8.1.0
注:我并没有安装EasyX;因为它貌似不会识别VScode;
但是我电脑上只有VScode ;
所以,我只是解压了安装文件,拿出了所需要使用的文件。
EasyX是C++的库;个人代码为C语言;#pragma comment(lib,“EasyXw.lib”) 貌似并没有生效;
所以在gcc编译配置中添加手动链接库文件的相关配置。
使用文件:
graphics.h
easyx.h
libeasyx.a
注:libeasyz.a文件是在下面这个网站中的链接中下载的,在EasyX主页中下载到的库文件是 .lib格式的。也可能是我没有找对地方。
使用 lib格式的库文件(EasyXw.lib),我始终无法正确链接库文件。
参考:https://codebus.cn/bestans/easyx-for-mingw
添加gcc编译配置 :
“-L”, “${fileDirname}\EasyX”, “-leasyx”
编译后报警
C:\Users\Dream-haohao\Desktop\test\EasyX/libeasyx.a(EasyX.o):EasyX.cpp:(.text+0x7c): undefined reference to `operator delete[](void*)'
C:\Users\Dream-haohao\Desktop\test\EasyX/libeasyx.a(EasyX.o):EasyX.cpp:(.text+0x187): undefined reference to `operator delete[](void*)'
C:\Users\Dream-haohao\Desktop\test\EasyX/libeasyx.a(EasyX.o):EasyX.cpp:(.text+0x1c6): undefined reference to `operator new[](unsigned long long)'
... ...
网上冲浪:得到结果:在gcc编译配置中再添加:
“-lstdc++”
编译后通过,正常显示。
参考:https://www.coder.work/article/799193
至于为什么,目前没有结果,以及为什么添加:“-lstdc++” 就正常了,希望有大佬朋友可以交一下。
新手小白学习中…
*/
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe 生成活动文件",
"command": "D:\\GCC\\mingw64\\bin\\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-L",
"${fileDirname}\\EasyX",
"-leasyx",
//"-lgdi32",
//"-lole32",
"-lstdc++"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": "build",
"detail": "编译器: D:\\GCC\\mingw64\\bin\\gcc.exe"
}
]
}
main
#include "EasyX\graphics.h" // 引用 EasyX 绘图库头文件
//int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
int main(void)
{
initgraph(640, 480); // 创建绘图窗口,分辨率 640x480
circle(320, 240, 100); // 画圆,圆心 (320, 240),半径 100
Sleep(5000); // 延时 5000 毫秒
closegraph(); // 关闭图形窗口
return 0;
}
结果
如果将这个EXE文件发给别人使用的话,可能需要同时发送另外两个文件,只需要和*.exe文件在同一目录下即可。
这个两个文件应该是你的gcc编译器路径下的,因为gcc编译器就调用的它们。
或者也可以使用gcc编译配置项 :“-static” ;
将需要的库文件都静态链接起来,这样就不需要同时发送需要的DLL库了。
只是生成文件稍微大了一点点,相信这不是关键的,而是可接受到。