大家好,又见面了,我是你们的朋友全栈君。
EGE专栏: EGE专栏 上一篇:(一)EGE入门教程 下一篇:(三)EGE基础教程 上篇
(二)EGE安装与配置
文章最后编辑时间:2021年12月15日15:22:36
安装讲解包含以下IDE
以及命令行GCC的编译方法 其中VS 以VS2017作安装讲解,其它版本自己参照来安装
对照教程配置一次后失败,或者1小时内没有成功,直接加群询问,不要在安装上浪费时间。 不成功是因为有些基础的知识没掌握,没法发现错误,这种情况下直接加群询问即可。有些人竟然会用一晚上甚至几天的时间来安装,最后没弄出来才加群询问。这浪费了几天时间不值得啊,安装本来就十几二十几分钟的事情,别人帮你安装,你不会都行,安装这件事不需要学,现在主要是因为自动安装程序没有编写出来所以才需要手动安装。 把时间花在EGE库的使用学习上,而不是浪费在安装这件事情上。
注意带上错误信息截图, 并说明自己用的什么编译器,按照哪个教程配置,配置到了哪一步。 配置出错,一般是文件放置的目录不对,链接参数写错。注意主动展示这三个配置信息 (头文件,库文件,链接参数)
参考自EGE官网 安装&配置 :https://xege.org/beginner-lesson-1.html
由于新版有点小改动,所以在安装配置方面,20.08版本和19.01版本有点不同,列举如下:
(之前 19.01版本 已经内置 gdiplus,可加可不加。)
这里方便参考 64位
-lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
32位
-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
EGE20.08中只有一个 ege20.08_all 安装包,里面已包含所直接支持的IDE
先解压安装包,打开安装包内的include目录。 如果include文件夹中没有 graphics.h文件,,那就是某次上传文件时遗漏了。可以下载19.01版本的EGE安装包,把graphics.h文件复制进去。
EGE图形库需要根据自己的编译器来进行安装,下面仅对VS2017 、CodeBlocks、DevC++、C-Free、VS Code、Eclipse for C/C++这些较为常用的编译器进行介绍,其余的自行参考类似的
如果按照下面的步骤安装不成功,可以找找其他人的安装教程试试,可能与EGE版本、编译器版本、个人电脑等有关。
安装主要是三个步骤,其实不复杂,篇幅比较长是因为有很多过程截图。 三个步骤: 1. 放置头文件到软件安装目录的include文件夹内。 (或者指定编译器的头文件搜索路径) 2. 放置库文件到到软件安装目录的lib文件夹内。(或者指定编译器的库文件搜索路径) 3. 在开发环境中配置链接参数(Visual Studio不需要)
文件复制主要是以下三个位置,头文件目录,64位库目录和32位库目录,具体位置根据所安装的软件调整。
以下是分软件来详细讲解安装过程
例如 E:\Visual Studio\Microsoft Visual Studio\2017\Community 找不到的可以在VS桌面图标右键选择打开文件所在位置,如下图
参考路径:
Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726
先点击 Community(社区版) 或 Professional(专业版)
然后找到 VC 目录 VS2017社区版 的 VC目录
VS2019专业版 的 VC 目录
再进入下面标红的目录,可以看到有 include 和 lib 这两个文件夹。
(注:在MSVC目录里有个 数字命名 的文件下(如,下图里是14.26.28801)
,如果有多个的情况下,进入到 数字最大 的那个文件夹)。(这里面是VS各个版本的库,如果多于1个,属于更新后旧版本的遗留,小版本号的可以删了)
③ 打开EGE安装包
将EGE安装包中的include目录中的所有文件,全选,复制粘贴到刚才的VS2017的include目录下(那个txt文件就不用复制了)
如果EGE安装包中没有 graphics.h文件,可以下载19.01版本的EGE安装包,把graphics.h文件复制进去,这个文件漏了
下面是复制好的例子.
头文件的复制就完成了,现在到复制 lib 文件
④ 找到VS2017安装位置中的lib目录(就在include的旁边)
(如下图)进lib目录将会看到x64 和x86两个文件夹,x64是64位,x86是32位的
在EGE安装包中找到 lib 文件夹,将里面x64文件夹和x86文件夹内的lib文件复制粘贴到VS2017 lib目录的对应位置
x64和x86的lib文件是不同的,需要放到对应的文件中,不然链接时就找不到lib文件了。
graphics.lib是x86文件夹中的,也就是32位的, graphics64.lib就是64位的。
在 EGE安装包 中,根据自己的VS版本进入对应的文件夹
可以里面看到有x86和x64两个文件夹,
点开来看,里面都各自有一个lib库文件,x86里面是32位的,x64里面是64位的。里面的lib文件就是我们需要的。
把上面用序号标记的两个lib文件,分别复制 到 VS中lib目录 对应的x64和x86目录就行了。(如下图)
上面文件放置已经完成,现在新建项目进行测试,查看是否可以编译成功。
如果不知道怎么用Visual Studio新建项目,可以查看以下教程:
其它版本自行查找教程,创建空项目
下面为测试代码(点击代码块右上方复制按钮进行复制)
:
#include <graphics.h> //包含EGE的头文件
int main()
{
initgraph(640, 480); //初始化图形界面
setcolor(EGERGB(0xFF, 0x0, 0x0)); //设置绘画颜色为红色
setbkcolor(WHITE); //设置背景颜色为白色
circle(320, 240, 100); //画圆
getch(); //暂停,等待键盘按键
closegraph(); //关闭图形界面
return 0;
}
如果运行后能看到下图就说明已经安装好了。
(如果编译出错,检查一下文件放置位置是否正确,或是安装了多个VS,或是放置到VS的旧版本文件夹)
如果VS2019总是自动跳出控制台,则需要设置一下在 项目属性中 设置一下 子系统, 如果原先是控制台,那么设置成未设置。
点击 链接器 ->系统,在 子系统 的下拉列表中选择 未设置即可。
http://www.codeblocks.org/downloads/26
因为CodeBlocks似乎是用的统一的配置文件,所以如果你之前已经安装,再安装新其它本时,编译器路径等配置可能会沿用之前的设置,需要自己修改一下。
打开编译设置
如果编译器安装路径没有设置正确,自己设置到编译器安装路径。
打开调试器设置
设置一下gdb.exe的路径,否则调试可能出错
注意了,20.03版本是64位的,而17.12版本是32位的,因此一个需要64位库,一个需要32位库
查看CodeBlocks版本信息 工具栏 Help –> About
步骤 ①找到Codeblocks的安装目录(桌面的快捷方式右键选择打开文件所在位置即可找到)
可以看到有个MinGW 文件夹 如果没有看到MinGW文件夹,那说明你安装的是不自带MinGW的CodeBlocks,编译器在其它地方 打开CodeBlocks, 选择设置(Settings) -> 编译器(Compiler)
然后点击一下选项卡 可执行工具集(Toolchain executables),就能看到MinGW文件夹在哪
打开EGE安装包文件ege20.08_all, 看到有include 和 lib
以下是Codeblocks中 include文件夹的参考路径:
CodeBlocks17.12 (32位)(下面有目录截图)
E:\CodeBlocks\MinGW\include
CodeBlocks20.03 (64位)(下面有目录截图)
E:\codeblocks\codeblocks-20.03\CodeBlocks\MinGW\x86_64-w64-mingw32\include
下面是目录位置截图 CodeBlocks17.12 中include目录
CodeBlocks20.03 中include目录
进入 lib 文件夹
根据自己 CodeBlocks 的版本选择进入对应的文件夹
(64位)
其它版本使用libgraphics.a(32位)
参考路径: CodeBlocks17.12 E:\CodeBlocks\MinGW\lib
CodeBlocks20.03 E:\codeblocks\codeblocks-20.03\CodeBlocks\MinGW\x86_64-w64-mingw32\lib
下面是目录位置截图 CodeBlocks17.12 中lib目录
CodeBlocks20.03 中lib目录
添加链接库有两种方式,一种是直接输入链接库名, 另一种是浏览目录,在lib目录中多选。前一种比较方便。
将下面的文本复制粘贴到输入框中,点击OK,注意,64位版本和32位版本不同
20.03版本是64位 的,输入:
libgraphics64.a; libgdi32.a; libimm32.a; libmsimg32.a; libole32.a; liboleaut32.a; libwinmm.a; libuuid.a; libgdiplus.a
17.12版本是32位 的,输入:
libgraphics.a; libgdi32.a; libimm32.a; libmsimg32.a; libole32.a; liboleaut32.a; libwinmm.a; libuuid.a; libgdiplus.a
这样就添加好了 17.12版本(32位)
20.03版本(64位)
鼠标左键点击拖动,框选全部的库,然后点击 “Copy selected to…”
勾选全部配置,点击OK即可,这样就配置好了
再点击OK确认修改
#include <graphics.h>
//using namespace ege;
int main()
{
initgraph(640, 480);
//设置绘画颜色为红色
setcolor(EGERGB(0xFF, 0x0, 0x0));
//设置背景颜色为白色
setbkcolor(WHITE);
//画圆
circle(320, 240, 100);
getch();
closegraph();
return 0;
}
这里推荐一款由高校老师开发的一款Dev-C++,内置EGE,打开即可使用,免去安装EGE的烦恼,并且为DevC++增加了不少强大的实用功能。
安装步骤:
然后就进入到了DevC++所在的安装目录
目的是将安装包中的EGE头文件和 lib 库文件放到DevC++安装目录中对应的位置
将EGE安装包 include 目录中的文件全选(txt文件就不用了)
,复制粘贴到 DevC++对应include目录 中
参考路径: D:\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include
DevC++安装目录中对应的include目录,如下图。
链接库文件分32位的和64位的,末尾带64的是64位的
(1) 将EGE安装包中的64位 链接库文件(libgrahipcs64.a)
, 复制粘贴到DevC++中对应的位置
参考路径: D:\Dev-cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2
libgraphics64.a 放置的目录
(2) 将EGE安装包中的32位 链接库文件(libgrahipcs.a)
, 复制粘贴到DevC++中对应的位置
参考路径:D:\Dev-cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\32
libgraphics.a 放置的目录
好了,头文件和库文件就已经完成了
新建一个空项目(Empty Project),项目名字随意(这里就直接用EGE了)
,选择 C++ Project(默认), 点击 OK
然后需要选择DevC++工程保存的目录, 选好位置后,新建一个目录(和刚才取的项目名相同,方便管理, 这里就用EGE了)
, 点击打开,然后点击 保存,项目就建好了。
可以看到左边项目下,自动帮我们新建了一个文件
然后我们点击工具栏上的 保存图标, 文件命名为 “main.cpp”
配置的编译器分为32位和64位 的,两个需要链接不同的库,所以参数有所不同
下面配置64位的
选择 64位的,将最下面红框标注的链接命令改为下面这句(将下面这句复制粘贴进去好)
-static -static-libgcc -lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
或者只添加链接库参数,这也可以
-lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
三个64位编译目标的都要设置一遍
下面配置32位
链接命令改为(32位的第一个链接命令是 -lgraphics, 而不是-lgraphics64,除了这个,和64位的没啥区别)
-static -static-libgcc -lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
或者只添加链接库参数,这也可以
-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
三个32位编译目标都要设置
6个都修改完后,点击 OK 就行,这样就已经全部配置完成了。
在有些别的DevC++的EGE安装教程里,链接命令没有 -lwinmm的,这样就用不了EGE里面用来播放音乐的 MUSIC类。如果你们编译参数里面没有,请在后面多添加一个 -lwinmm,否则使用MUSIC类时会出现 链接错误。
#include <graphics.h> //包含EGE的头文件
int main()
{
initgraph(640, 480); //初始化图形界面
setcolor(EGERGB(0xFF, 0x0, 0x0)); //设置绘画颜色为红色
setbkcolor(WHITE); //设置背景颜色为白色
circle(320, 240, 100); //画圆
getch(); //暂停,等待键盘按键
closegraph(); //关闭图形界面
return 0;
}
将编译目标设为64-bit Debug(这个是让你注意一下编译目标)
如果你的Windows是32位系统,那就设置为32-bit Debug。
然后点击 编译运行
如果没有任何报错,出现如下界面,就说明已经安装成功,如果报错,那就回去检查检查哪一步出了问题
可以看到,Devc++是默认显示控制台的,如果想要去掉 点击工具栏 项目(Project) –>编译选项(Prject Option…)
项目类型(Type) 选择Win32 GUI (图形用户界面程序), 而不是控制台程序(Win32 Console), 点击OK即可
再点击Rebuild All, 然后点击 编译运行(Compile & Run) 就OK了
找不到对应库 can’t find -lgraphics64(或 -lgraphics) 出现这个界面,说明在链接时出现了问题 看到 错误信息,“connot find -lgrahphics64’’, 找不到 grahphics64.a 库,看到右上角,配置是32位Release版, 和64位库不对应。 说明链接命令写错了,应该是 -lgraphics 如果配置和库已经对应,那么请检查一下是否将库文件放错了位置
未定义引用(undefined reference to xxx) 链接错误,没找到对应的函数定义。一看是EGE的库函数 说明链接命令没配置对 看下右上角的编译目标,然后点击 “工具(Tools)–>编译选项(Compiler Option…)”, 找到对应的编译器配置,设置好链接命令
看下面,都没配置
把所有编译器配置都设置一遍链接命令 64位 改为
-lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
32位 改为
-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
改完后,Rebuild一下
没有对应文件或目录(No such file or direction) 说明头文件没放对位置
回去检查一下头文件应该放在哪,实在不清楚的话,可以到编译选项里面看(中间有个gcc的那个)
打开DeVC++时提示 库 路径不存在
可以看到,上面显示32位的项目中,库路径MinGW64\lib32不存在 查看一下目录,发现确实没有 lib32 这个文件夹
刚打开时没有打开项目,那应该是全局设置里面的。 选择 工具 -> 编译选项
检查一下 所有32位配置 的库路径,写有这个不存在的路径话,点击一下“删除无效”按钮,就会把无效的路径删除,然后点击确认保存就好。
编译失败后总是弹出Makefile.win重新载入确认框 编译失败,先找到出错原因,修改好后,关掉 Makefile.win 文件
当前目录无效 出现如下所示的报错,并且确认已经按教程配置好,那可能是DevC++ 的问题。可以考虑换一个DevC++ ,到下面下载官方版本: 附 DevC++下载链接 : https://sourceforge.net/projects/orwelldevcpp/ EGE官网DevC++下载: https://xege.org/install_and_config
需要先安装好GCC, 是MinGW-W64的,而不是MinGW,这两个是不同的 下面按64位的配置
(也可以下载TDM-GCC)
先去下载好最新版的GCC
下面两个选一个下载就行,教程里写的是MinGW-W64 GCC
64位电脑 选择 x86_64-posix-seh 下载。 选择 x86_64-posix-seh 下载。 选择 x86_64-posix-seh 下载。 (不要下x86_64-posix-sjlj) (重要的事说三遍) 32位电脑 选择 i686-posix-sjlj 下载。
(别随便乱放)
,再解压到里面,就可以了。
比如,我在 D盘根目录 新建了 mingw-w64 文件夹,然后解压到里面。这样GCC就安装好了,命令行测试一下,先win + R调出 运行, 输入 cmd,调出命令行。
命令行输入 g++ –version 查看g++版本信息, gdb –version 查看gdb版本信息,能正确输入信息就OK了。
参考路径 D:\mingw-w64\mingw64\x86_64-w64-mingw32\include
把 EGE安装包中EGE20.08\lib\mingw64 中的库文件复制, 参考路径 D:\mingw-w64\mingw64\x86_64-w64-mingw32\lib
粘贴到 mingw-w64 的库目录中。
EGE库安装完成。
(如果有合适的,不新建也行)
如下图,我在 E:/VSProject/egeCmd 下新建了一个ege文件夹作为工作目录
即工作目录为 E:/VSProject/egeCmd/ege
示例代码
#include <graphics.h> //包含EGE的头文件
int main()
{
initgraph(640, 480); //初始化图形界面
setcolor(EGERGB(0xFF, 0x0, 0x0)); //设置绘画颜色为红色
setbkcolor(WHITE); //设置背景颜色为白色
circle(320, 240, 100); //画圆
getch(); //暂停,等待键盘按键
closegraph(); //关闭图形界面
return 0;
}
ege所需的链接命令 (64位系统):
-lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
ege所需的链接命令 (32位系统):
-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
根据我上面的文件,命令为:
g++ main.cpp -o ege.exe -lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
(源文件名可以使用 *.cpp, 这代表编译目录中所有源文件)
如果编译链接没有问题,就会生成exe文件,命令中已经将生成文件命名为ege.exe
如果出现了下面的错误,那么很可能是你下错了GCC 64位请确认下载的是 x86_64-posix-seh, 而不是 x86_64-posit-sjlj
如下图,有两个源文件,一个头文件
下面是三个文件的内容 main.cpp
#include <graphics.h> //包含EGE的头文件
#include "test.h"
int main()
{
initgraph(640, 480); //初始化图形界面
setcolor(EGERGB(0xFF, 0x0, 0x0)); //设置绘画颜色为红色
setbkcolor(WHITE); //设置背景颜色为白色
circle(320, 240, 100); //画圆
draw(); //调用其它源文件的函数
getch(); //暂停,等待键盘按键
closegraph(); //关闭图形界面
return 0;
}
test.h
#ifndef _HEAD_TEST_H
#define _HEAD_TEST_H
void draw();
#endif //!_HEAD_TEST_H
test.cpp
#include <graphics.h>
#include "test.h"
void draw()
{
setfillcolor(BLUE);
bar(100, 100, 300, 300);
}
如果有一个或多个源文件,那么g++命令中的文件名换成 *.cpp 即 g++ *.cpp -o ege.exe -lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
编译链接成功,会生成exe文件
运行程序 命令行输入exe文件名,或者直接双击exe文件,运行程序,这里是 ege.exe
其它GCC命令,可以自行上网查找资料
这里有别人发的B站安装视频,如果想看安装视频的可以去看
https://www.bilibili.com/video/av88687187/
需要先自行安装好GCC,推荐 TDM-GCC 和 MinGW-W64
下面按64位的配置
请参考 (4)命令行使用GCC编译 中的 [1] MinGW-W64 的安装
请确认下载的64位版本是 x86_64-posix-seh , 而不是 x86_64-posix-sjlj
请参考 (4)命令行使用GCC编译 中的 [2] EGE的安装
关于VS Code的C++配置,可以查看VS Code 官网的配置说明,里面有配置的说明,按着配置说明来即可,过程说得挺清楚。(如果之前已经使用过VS Code,那肯定已经搞过)
VS Code 官网的配置C++说明
既然使用 VS Code, 那就默认了解 VS Code 的配置文件写法或者了解配置文件的配置选项含义,这个就不多说了,可以看上面的官网文档,或者自行搜索,确保能运行 C++ 的Hello world程序为止。
编译C++是需要安装下面这款插件的,扩展里直接搜 C/C++ 即可
配置好C++后,下面来讲解设置如何配置ege。
新建项目
复制粘贴下面的代码
#include <graphics.h> //包含EGE的头文件
int main()
{
initgraph(640, 480); //初始化图形界面
setcolor(EGERGB(0xFF, 0x0, 0x0)); //设置绘画颜色为红色
setbkcolor(WHITE); //设置背景颜色为白色
circle(320, 240, 100); //画圆
getch(); //暂停,等待键盘按键
closegraph(); //关闭图形界面
return 0;
}
设置C/C++插件的配置文件 c_cpp_properties.json
点击 查看->命令面板, 或者 (Shift + Ctrl + P)
输入 C/C++ Edit 选择 C/C++ 编辑配置(UI)
可以看到左边 新建了个 c_cpp_properties.json文件
然后复制粘贴下面的配置文本
注意:
includePath 中要添加 gcc放置头文件的目录(根据自己的安装位置修改)
路径选项1: xx\mingw64\include 路径选项2: xx\mingw64\x86_64-w64-mingw32\include
compilePath填入 g++.exe的路径
c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}\\**",
"D:\\mingw-w64\\mingw64\\include",
"D:\\mingw-w64\\mingw64\\x86_64-w64-mingw32\\include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "D:\\MinGW-W64\\mingw64\\bin\\g++.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
Code Runner插件比较多人用,下载后可以一键编译运行多种编程语言的代码,不需要繁琐的配置,但是似乎不能调试。 Code Runner插件安装完成之后,会多一个运行按钮,右键菜单中会多一个Run Code选项,这个就是Code Runner插件的。
Code Runner插件的配置 点击 文件->首选项->设置
在 用户 设置的扩展中找到 Code Runner 的设置 Run Code Configuration
然后在配置项的 Executor Map 中,点击一下 在settings.json中编辑,进入文本编辑方式。
在 “code-runner.executorMap” 中加入 cpp的运行命令,如下:(在code-runner.executorMap中,如果cpp的运行命令已经存在了的话,修改一下即可,可以用 // 或 /* */ 将原来的注释掉)
"code-runner.executorMap": {
"cpp": "cd $dir && g++ -static-libgcc -g $fileName -o $fileNameWithoutExt -lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus && $dir$fileNameWithoutExt",
},
说明一下,下面这个是EGE所需要的 GCC 链接参数
-lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
然后在下面再加入4 行:
"code-runner.runInTerminal": true, /* 在集成终端中运行 */
"code-runner.ignoreSelection": true, /* 忽略所选部分,始终运行整个文件 */
"code-runner.fileDirectoryAsCwd": true, /* 将文件所在目录设为当前工作目录 */
"code-runner.saveFileBeforeRun": true, /* 运行前保存文件*/
示例如下:(请注意加入设置项的位置,不要被其它设置项用括号包含在内)
出现如下运行结果就OK了。
除了上面使用 CodeRunner插件运行的方法,下面介绍的是使用 VSCode 自身的配置文件来配置。
运行方式是菜单 运行->启动调试(F5) (现在还没配置,运行不了)
选择 C/C++: g++.exe build active file
然后会生成一个 tasks.json 文件, 复制粘贴下面的 tasks.json 配置文本。 注意:
"D:/mingw-w64\\mingw64\\bin\\g++.exe"
(这里注意了,是g++.exe,而不是gcc.exe,因为是C++库,需要用C++编译器编译)
下面这个是EGE所需的链接参数
-lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
tasks.json
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++.exe build active file",
"command": "D:\\mingw-w64\\mingw64\\bin\\g++.exe",
"args": [
"-g",
"${workspaceFolder}\\*.cpp", //多文件编译
//"${file}", //单文件编译用这个
"-o",
"${workspaceFolder}\\${workspaceRootFolderName}.exe",
"-lgraphics64",
"-luuid",
"-lmsimg32",
"-lgdi32",
"-limm32",
"-lole32",
"-loleaut32",
"-lwinmm",
"-lgdiplus",
],
"options": {
"cwd": "D:\\mingw-w64\\mingw64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
然后会生成一个 launch.json 文件, 复制粘贴下面的配置文本。 注意:
(就在那个mingw64里的bin目录中)
我的是 “D:\\mingw-w64\\mingw64\\bin\\gdb.exe”文件 launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\${workspaceRootFolderName}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:\\mingw-w64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++.exe build active file"
}
]
}
回到cpp源文件,点击 运行->启动调试(F5)
出现如下运行结果就OK了。
如果有多个源文件,所有源文件要直接放置在工作目录下,否则编译命令需要另外添加:所在目录\\*.cpp, 像下面一样
注意一下,下面 args 中有个参数
另外说明 对于多文件编译, 文件 launch.json 中的
"${workspaceFolder}\\*.cpp"
可能使编译器无法正确编译,因为目前发现有部分编译器如TDM-GCC无法识别 * 通配符 ,所以如果编译,可以将这个参数换成想要编译的源文件。
项目树如下图,项目工作空间下,有source文件夹,main.cpp, file.cpp,,并且source文件夹中有test.cpp
那么参数为
//多文件编译
"${workspaceFolder}\\main.cpp",
"${workspaceFolder}\\file.cpp",
"${workspaceFolder}\\source\\test.cpp",
完整 launch.json文件
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++.exe build active file",
"command": "g++.exe",
"args": [
"-g",
"${workspaceFolder}\\main.cpp",
"${workspaceFolder}\\file.cpp",
"${workspaceFolder}\\source\\test.cpp",
//"${file}", //单文件编译用这个
"-o",
"${workspaceFolder}\\${workspaceRootFolderName}.exe",
"-lgraphics64",
"-luuid",
"-lmsimg32",
"-lgdi32",
"-limm32",
"-lole32",
"-loleaut32",
"-lwinmm",
"-lgdiplus",
],
"options": {
"cwd": "D:\\mingw-w64\\mingw64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
(别用C-Free了好不好)
,没有带有 libgdiplus.a,所以无法安装 EGE20.08,只能安装 EGE19.01
主要是将安装包中的头文件和库文件放到正确的位置
(txt文件就不用了)
,复制粘贴到C-Free对应include目录中
参考路径( E:\C-Free5\mingw\include )
(这里取ege)
, 保存位置选个合适的目录,点击确定。
(选其它也行)
, 点击下一步
(这里选mingw5)
-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm
(注意到图片里有个-lgdiplus,这里不要加)
-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm
(注意到图片里有个-lgdiplus,这里不要加)
#include <graphics.h> //包含EGE的头文件
int main()
{
initgraph(640, 480); //初始化图形界面
setcolor(EGERGB(0xFF, 0x0, 0x0)); //设置绘画颜色为红色
setbkcolor(WHITE); //设置背景颜色为白色
circle(320, 240, 100); //画圆
getch(); //暂停,等待键盘按键
closegraph(); //关闭图形界面
return 0;
}
避免重复配置的方法 刚才的项目配置只是针对一个项目的,如果下次新建一个EGE项目,还得重新配置 如果你经常写EGE程序,最好在 构建 中配置, 这样每次新建一个项目,就会自动为项目进行同样的配置,就免去了重新配置的麻烦。
-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus
如果你不想要后面的控制台窗口,可以关掉
一些错误原因请参考 DevC++ 部分。 No such file or directory 显示下方的错误信息,那很有可能是安装路径 带有空格
问题相关解决办法https://jingyan.baidu.com/article/9989c746cc5b0cf648ecfeb1.html
这时找到安装目录,把路径上的空格都去掉,如下图,为软件自动生成的安装目录,带有空格,请把空格删掉
参考 (4)命令行使用GCC编译 中的 [1] MinGW-W64 的安装
请确认下载的是 x86_64-posit-seh , 而不是x86_64-posit-sjlj
参考 (4)命令行使用GCC编译 中的 [2] EGE的安装
(任意取,填ege就行)
,选择一个空文件夹作为工作空间(最好找个地方新建个workspace目录,然后项目统一放里面)
, 选择之前安装好的GCC编译器,点击finish(任意,但包含main函数的源文件命名main即可,容易区分)
, 点击finish
#include <graphics.h> //包含EGE的头文件
int main()
{
initgraph(640, 480); //初始化图形界面
setcolor(EGERGB(0xFF, 0x0, 0x0)); //设置绘画颜色为红色
setbkcolor(WHITE); //设置背景颜色为白色
circle(320, 240, 100); //画圆
getch(); //暂停,等待键盘按键
closegraph(); //关闭图形界面
return 0;
}
(首次设置)
选择 窗口(Window) -> 首选项(Preferences)
点击 常规(General) -> 工作空间(workspace) -> 构建(Build), 把手动构建前自动保存(Save automatically before manual build) 勾选
分别添加下面9个库(如果你是构建32位的,把graphics64换成graphics)
graphics64 uuid msimg32 gdi32 imm32 ole32 oleaut32 winmm gdiplus
有两个,Debug 和 Realease,两个都要设置,点击 应用(Apply),然后点击 应用并关闭(Apply and close) 就可以了。
(如果之前配置好了,就不用看了)
Clion中没有自带编译器,需要自行下载编译器,安装后设置一下编译器路径即可。 CLion安装时会自动出现相关配置界面要求填入编译器安装目录,如果跳过,可以按如下操作进行设置。
(对于有多个编译器的,可以点击列表里的编译器,然后点上下箭头将其上移下移,第一个即为默认编译器
对于安装了多个编译器的,可以在 Toolchain 里设置一下具体使用的编译器,原设置是使用默认编译器。
点击欢迎页 的New Project 或者 菜单栏 “File” 下拉菜单中的 “New Project” 都可以
在弹出的New Project 窗口中,选择 “C++ Executable”,设置一下新建项目的位置,文件夹名也将是新项目的名字。
新建好的项目如下图所示,会自动创建一个Hello world程序。
点击工具栏上的运行按钮,运行程序。
下面运行栏中出现 “Hello, World!” 即为成功。
CLion是用cmake来做项目构建的,配置需要修改里面的 CMakeLists.txt
文件。
将ege安装包解压到一个合适的位置,最好不要乱放。
(如下图,在E盘根目录中新建了ege文件夹,ege解压到其中。)
在项目视图中,可以 main.cpp
旁边看到有一个CMakeLists.txt
文件。
CMakeLists.txt
初始内容如下(untitled2为项目名)
:
配置内容如下图所示:(图后有说明,这里为GCC编译器的配置) (untitled为创建时自动生成的项目名,可自行修改)
需要注意安装包中的两个路径 (配置文件中的路径根据个人电脑的安装包实际目录修改,这里为我个人的安装包目录)
cmake_minimum_required(VERSION 3.15)
project(untitled)
set(CMAKE_CXX_STANDARD 14)
set(EGE_INC_DIR E:/ege/EGE20.08/include)
set(EGE_LINK_DIR E:/ege/EGE20.08/lib/mingw64)
include_directories(${
EGE_INC_DIR})
link_directories(${
EGE_LINK_DIR})
add_executable(untitled main.cpp)
target_link_libraries(untitled libgraphics64.a
libgdi32.a libimm32.a libmsimg32.a libole32.a
liboleaut32.a libwinmm.a libuuid.a libgdiplus.a)
如果你安装有VS,想使用VS里的MSVC编译器,则target_link_libraries
里只需添加 graphics.lib
或graphics64.lib
即可。(需要注意graphics.lib或graphics64.lib实际所在目录)
cmake_minimum_required(VERSION 3.20)
project(untitled)
set(CMAKE_CXX_STANDARD 14)
set(EGE_INC_DIR E:/ege/EGE20.08/include) #设置EGE_INC_DIR 为EGE头文件目录
set(EGE_LINK_DIR E:/ege/EGE20.08/lib/vs2019/x64) #设置EGE_LINK_DIR 为EGE库目录
include_directories(${
EGE_INC_DIR}) #添加 EGE_INC_DIR 所指定的目录为包含目录
link_directories(${
EGE_LINK_DIR}) #添加 EGE_LINK_DIR 所指定的目录为链接目录
add_executable(untitled main.cpp)
target_link_libraries(untitled graphics64.lib) #链接EGE库
下面是对上面 CMakeLists.txt 配置内容的一个说明
这里先定义两个路径参数 EGE_INC_DIR
和EGE_LINK_DIR
,表示上面ege库的路径 (实际路径需要自己到文件管理器中自行查看确定) ,方便引用。
lib 使用lib/mingw64
中的库文件。
set(EGE_INC_DIR E:/ege/EGE20.08/include)
set(EGE_LINK_DIR E:/ege/EGE20.08/lib/mingw64)
使用 include_directories
添加ege的include目录
include_directories(${
EGE_INC_DIR})
使用 link_directories
添加ege的lib目录
link_directories(${
EGE_LINK_DIR})
在GCC中 ege 需要链接的库如下:
libgraphics64.a libgdi32.a libimm32.a libmsimg32.a libole32.a liboleaut32.a libwinmm.a libuuid.a libgdiplus.a
在MSVC中 ege 需要链接的库如下:
graphics64.lib
在add_executable
后面添加target_link_libraries
,然后加入以上库即可。
GCC
target_link_libraries(untitled libgraphics64.a
libgdi32.a libimm32.a libmsimg32.a libole32.a
liboleaut32.a libwinmm.a libuuid.a libgdiplus.a)
MSVC
target_link_libraries(untitled graphics64.lib)
修改 main.cpp
内容为如下测试代码:
#include <graphics.h> //包含EGE的头文件
int main()
{
initgraph(640, 480); //初始化图形界面
setcolor(EGERGB(0xFF, 0x0, 0x0)); //设置绘画颜色为红色
setbkcolor(WHITE); //设置背景颜色为白色
circle(320, 240, 100); //画圆
getch(); //暂停,等待键盘按键
closegraph(); //关闭图形界面
return 0;
}
点击运行按钮,出现如下图形即可。
如果不需要控制台,可以加入编译参数 -mwindows
set(CMAKE_CXX_FLAGS -mwindows)
EGE专栏: EGE专栏 上一篇:(一)EGE入门教程 下一篇:(三)EGE基础教程 上篇
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126060.html原文链接:https://javaforall.cn