扩展知识:vscode配置easyx

riskmoumou / 2024-02-20 / 原文

扩展知识:vscode配置easyx

前言

因为个人用习惯了vscode,对于visual studio的操作只能说相当程度上很不适应,因此,我打算经历一番配置,让vscode可以配置上easyx。

尽管参考了不少博客,但是不是在被踢来踢去的就是搞得特别复杂。不行,只能自己尝试了。

笔者环境:

  • MinGW-w64(因为我根据这个配置的我的vscode环境:Get Started with C++ and MinGW-w64 in Visual Studio Code)

    • 当初没学markdown的时候我自己写了这么一篇粗糙的博客,近期稍微做了一下修改,感兴趣可以看看(疯狂暗示)如何配置Visual Studio Code C/C++环境
  • vscode(这不废话吗

vscode配置easyx

寻找easyx

关键在于,首先,我们需要easyx的头文件,以及easyx头文件所对应的函数实现。让我们找到它。我的visual studio是2022版。

  • lib(静态链接库):

    • C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\lib\x86

      • EasyXa.lib
      • EasyXw.lib
    • C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\lib\x64

      • EasyXa.lib
      • EasyXw.lib
  • h(头文件)

    • C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include

      • easyx.h
      • graphics.h

找到它们后,先把它们放到一个文件夹里面备用。

image

image

image

image

让easyx到我们最需要的地方去

image

现在的情况是找不到这个头文件,那我们就放到对应目录去,怎么放呢?iostream​能找到,那我们看看iostream​在哪里,按下ctrl​,然后鼠标左键单击即可。

image

根据路径:C:\msys64\mingw64\include\c++​我们果不其然,找到了iostream​。

image

接下来,我们就把easyx的头文件丢进去。于是,就有了相关函数的·声明和定义了。

那么函数的实现呢?我们还要把对应的lib(静态链接库) 丢到合适的地方。

在网上查了很久,都不是我想要的效果,好吧,完蛋,我又得自己动手了。

让我们看看报错信息。

image

可以断定,就是缺少了定义,而我们相应的定义放在了lib当中。事情陷入了瓶颈......

easyx配置到vscode的方法

去easyx官方看看吧,在 CLion、Dev-C++ 或 Code::Blocks 下面配置 EasyX(2023-7-23 更新) - CodeBus

配置说明

基本上,任何开发环境配置 easyx for mingw 都只需两步:

1. 安装库文件

下载的压缩包先解压缩,然后将 include 下的头文件和 lib32/lib64 下的库文件,分别拷贝到 MinGW 的头文件和库文件中。如果不确定具体的库文件路径,参考本文末尾的 QA 部分。

2. 增加编译时的链接选项

链接选项增加:-leasyx,这样可以在编译的时候链接 libeasyx.a 库文件。每个项目都要这样设置一次,然后编译即可。

很好,这样一来问题就好办了(真的,真的,真的对不给参考链接,参考资料的很多博客表示头疼。这不是让我无头苍蝇乱窜吗?)

让我们一步一步搞定它。

关于什么是.a​​文件:以.a(a为后缀)的文件类型是啥鸭?_.a文件-CSDN博客

  1. 放入lib64的.a​文件->../mingw64/lib

    1. image
  2. 放入lib32的.a​文件->../mingw32/lib

    1. image
  3. 放入include的.h​文件->../mingw64/include

    1. image
    2. image

然后,就要修改我们的task配置了,这就涉及到对gcc编译命令的使用了,参考如下:

  • gcc的常用选项与编译_gcc编译时,添加选项 -wl,-rpath,动态库的路径-CSDN博客
  • GCC -l 选项添加链接库_ggc 链接库】-CSDN博客

仅仅需要指定一下我们的库文件搜索路径目录,然后添加编译选项leasyx​即可(对不起,我真的不想用什么cl​,也不想用什么shell​诸如此类的东西,能简简单单搞定的事情就不要搞太复杂QWQ)

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "C:\\msys64\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-L",  // 在库文件的搜索路径列表中添加dir目录,
                "C:\\msys64\\mingw64\\lib",
                "-leasyx"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

结语

不想被踢皮球,就多找原始出处,多自己动手实现。虽然过程艰辛,但是收获也不少。

参考资料

easyx:

  • 在 CLion、Dev-C++ 或 Code::Blocks 下面配置 EasyX(2023-7-23 更新) - CodeBus

gcc:

  • gcc的常用选项与编译_gcc编译时,添加选项 -wl,-rpath,动态库的路径-CSDN博客
  • GCC -l 选项添加链接库_ggc 链接库】-CSDN博客
  • 以.a(a为后缀)的文件类型是啥鸭?_.a文件-CSDN博客