前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ege安装教程(第二银河配置要求)

ege安装教程(第二银河配置要求)

作者头像
全栈程序员站长
发布于 2022-08-01 06:25:04
发布于 2022-08-01 06:25:04
7K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

EGE专栏: EGE专栏 上一篇:(一)EGE入门教程 下一篇:(三)EGE基础教程 上篇

(二)EGE安装与配置

文章最后编辑时间:2021年12月15日15:22:36

目录

安装讲解包含以下IDE

  • Visual Studio
  • CodeBlocks
  • DevC++
  • VS Code
  • Eclipse IDE for C/C++
  • C-Free
  • Clion

以及命令行GCC的编译方法 其中VSVS2017作安装讲解,其它版本自己参照来安装

对照教程配置一次后失败,或者1小时内没有成功,直接加群询问,不要在安装上浪费时间。   不成功是因为有些基础的知识没掌握,没法发现错误,这种情况下直接加群询问即可。有些人竟然会用一晚上甚至几天的时间来安装,最后没弄出来才加群询问。这浪费了几天时间不值得啊,安装本来就十几二十几分钟的事情,别人帮你安装,你不会都行,安装这件事不需要学,现在主要是因为自动安装程序没有编写出来所以才需要手动安装。   把时间花在EGE库的使用学习上,而不是浪费在安装这件事情上。

注意带上错误信息截图, 并说明自己用的什么编译器,按照哪个教程配置,配置到了哪一步。 配置出错,一般是文件放置的目录不对,链接参数写错。注意主动展示这三个配置信息 (头文件,库文件,链接参数)

EGE图形库的安装

  参考自EGE官网 安装&配置https://xege.org/beginner-lesson-1.html

EGE20.08新版发布啦

安装配置的变化

由于新版有点小改动,所以在安装配置方面,20.08版本和19.01版本有点不同,列举如下:

  • 用于VS的库文件名去掉了VS版本号 如:原来用于VS2019graphics1964.lib库文件 改为 graphics64.lib,去掉了19 左为 20.08 版本,右为19.01版本
  • EGE20.08 直接适配的IDE增多,根据自己安装的写代码软件选择对应的安装包
  • 新版之前安装过旧版,只需要复制对应的文件,在安装目录中进行替换即可
  • 20.08版本去掉了内置 gdiplus,所有链接参数必须带上 -lgdiplus,或者添加gdiplus.a 到链接库目录里面。(之前 19.01版本 已经内置 gdiplus,可加可不加。)

不要再安装19.01版本了,谢谢

GCC编译器的链接参数

这里方便参考 64位

-lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus

32位

-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus

1. 下载

EGE 20.08

EGE20.08中只有一个 ege20.08_all 安装包,里面已包含所直接支持的IDE

下载链接

(1) EGE官网 站内下载

官网下载地址:https://xege.org/install_and_config

(2) EGE官网 百度网盘下载:

https://pan.baidu.com/s/1qWxAgeK#list/path=%2F

安装包注意事项

  先解压安装包,打开安装包内的include目录。   如果include文件夹中没有 graphics.h文件,,那就是某次上传文件时遗漏了。可以下载19.01版本的EGE安装包,把graphics.h文件复制进去。

2. 安装

EGE图形库需要根据自己的编译器来进行安装,下面仅对VS2017 、CodeBlocks、DevC++、C-Free、VS Code、Eclipse for C/C++这些较为常用的编译器进行介绍,其余的自行参考类似的

如果按照下面的步骤安装不成功,可以找找其他人的安装教程试试,可能与EGE版本、编译器版本、个人电脑等有关。

安装主要是三个步骤,其实不复杂,篇幅比较长是因为有很多过程截图。 三个步骤: 1. 放置头文件到软件安装目录的include文件夹内。 (或者指定编译器的头文件搜索路径) 2. 放置库文件到到软件安装目录的lib文件夹内。(或者指定编译器的库文件搜索路径) 3. 在开发环境中配置链接参数(Visual Studio不需要)

文件复制示意图

  文件复制主要是以下三个位置,头文件目录,64位库目录和32位库目录,具体位置根据所安装的软件调整。

以下是分软件来详细讲解安装过程

(1) Visual Studio

EGE安装包目录与VS目录对应说明
  • VS安装EGE,主要是将安装包中 include 文件夹和 lib文件夹 中的文件,复制到VS安装目录中对应的位置。其中lib 文件夹中有 x64x86 两个文件夹,都有对应的库文件要放置。
  • 下图表示对应关系,左边是VS的目录,右边是EGE安装包目录。将右边 include目录里面的 所有文件 直接复制粘贴到左边include目录中,将右边x64 和 x86中的文件同样复制粘贴到对应文件夹里
EGE的安装
[1] VS安装目录的查找

例如 E:\Visual Studio\Microsoft Visual Studio\2017\Community 找不到的可以在VS桌面图标右键选择打开文件所在位置,如下图

[2] VS的include目录和lib目录的查找

参考路径:Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726

先点击 Community(社区版) 或 Professional(专业版)

然后找到 VC 目录 VS2017社区版VC目录

VS2019专业版VC 目录

再进入下面标红的目录,可以看到有 includelib 这两个文件夹。

(:在MSVC目录里有个 数字命名 的文件下(如,下图里是14.26.28801),如果有多个的情况下,进入到 数字最大 的那个文件夹)。(这里面是VS各个版本的库,如果多于1个,属于更新后旧版本的遗留,小版本号的可以删了)

  • include目录中的内容

打开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位的

[4] lib库文件的复制

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文件分别复制VSlib目录 对应的x64x86目录就行了。(如下图)

安装测试

  上面文件放置已经完成,现在新建项目进行测试,查看是否可以编译成功。

新建工程
  • 用 Visual Studio 新建一个项目(空项目)

如果不知道怎么用Visual Studio新建项目,可以查看以下教程

VS2017创建新项目 VS2019创建新项目

其它版本自行查找教程,创建空项目

  • 新建一个.cpp文件,写入测试代码,编译,运行

下面为测试代码(点击代码块右上方复制按钮进行复制)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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去掉控制台

  如果VS2019总是自动跳出控制台,则需要设置一下在 项目属性中 设置一下 子系统, 如果原先是控制台,那么设置成未设置

点击 链接器 ->系统,在 子系统 的下拉列表中选择 未设置即可。

(2) Codeblocks

Codeblocks下载链接(更新到20.03版了)

http://www.codeblocks.org/downloads/26

CodeBlocks不同版本覆盖安装问题

因为CodeBlocks似乎是用的统一的配置文件,所以如果你之前已经安装,再安装新其它本时,编译器路径等配置可能会沿用之前的设置,需要自己修改一下。

打开编译设置

如果编译器安装路径没有设置正确,自己设置到编译器安装路径

打开调试器设置

设置一下gdb.exe的路径,否则调试可能出错

注意了,20.03版本64位的,而17.12版本32位的,因此一个需要64位库,一个需要32位

  • 安装说明所用codeblocks版本: 版本17.12 32位

查看CodeBlocks版本信息 工具栏 Help –> About

步骤 ①找到Codeblocks的安装目录(桌面的快捷方式右键选择打开文件所在位置即可找到)

  • 我的安装目录 E:\codeblocks\codeblocks-17.12\CodeBlocks

可以看到有个MinGW 文件夹 如果没有看到MinGW文件夹,那说明你安装的是不自带MinGW的CodeBlocks,编译器在其它地方 打开CodeBlocks, 选择设置(Settings) -> 编译器(Compiler)

然后点击一下选项卡 可执行工具集(Toolchain executables),就能看到MinGW文件夹在哪

  • 进入MinGW文件夹,找到里面的includelib 文件夹 (下面这个是17.12版本要放的地方, 20.03版本放的是另外的位置)

打开EGE安装包文件ege20.08_all, 看到有include 和 lib

头文件的放置
  • 这时我们把EGE安装包include目录中的文件复制,就是以下红圈中的三个,
  • 然后粘贴到Codeblocks的include文件夹中 注意啦,是复制EGE安装包中上图红圈中的三个,放到 安装目录的include目录里面,而不是复制整个include文件夹

以下是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.12include目录

CodeBlocks20.03include目录

lib文件的放置

进入 lib 文件夹

根据自己 CodeBlocks 的版本选择进入对应的文件夹

  • 将里面的 .a库文件,复制粘贴到 CodeBlocks安装目录中lib目录中。 CodeBlocks 20.03使用 libgraphics64.a(64位) 其它版本使用libgraphics.a(32位)
  • 复制粘贴到Codeblocks对应的lib目录中

参考路径: CodeBlocks17.12 E:\CodeBlocks\MinGW\lib

CodeBlocks20.03 E:\codeblocks\codeblocks-20.03\CodeBlocks\MinGW\x86_64-w64-mingw32\lib

下面是目录位置截图 CodeBlocks17.12lib目录

CodeBlocks20.03lib目录

测试
创建工程
  • 新建工程
  • 选择空工程 (Empty project),点击 Go
  • 选择Next
  • 填写工程名(Project title),其它默认,也可以修改工程目录
  • 选择编译器 GNU GCC Compiler
  • 勾选Debug, Release
  • finish
链接参数配置
  • 新建好后,现在设置工程, 配置链接参数。 选择 Project -> Build options…
  • 看到左边有Debug 和 Release, 如果两种都要编译,请两个都要设置,现在设置Debug 点击左边的Debug
  • (左边有三个可以选,Debug /Release和工程, 这三个可以分别配置成不同的设置, 这里我们先配置Debug, 然后复制到另外两个就行)
  • 选择Linker option, 点击Add
  • 弹出文件选择框,要开始添加链接库了

添加链接库有两种方式,一种是直接输入链接库名, 另一种是浏览目录,在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确认修改

  • 链接库配置已经完成,以后每次新建个工程,都要重新设置一次链接库(后面有方法解决)
  • 点击左上角新建文件图标,也可以从File -> new->empty file新建
  • 改文件名为 main.cpp, 一定要是.cpp后缀, 因为EGE是C++图形库,用.c文件是会报错的
  • 选择OK
  • 输入测试代码 如果CodeBlocks不能自动补全, 那么需要在前面写命名空间 可添加 using namespace ege;即下面的注释
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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;
}
  • 选择Debug
  • 选择Build -> Build
  • 编译链接没有出错
  • 点击Build -> Run( 工具栏上也有) *
  • 运行成功, 出现了两个框,黑色的是我们最常见的控制台窗口,白色的则是我们的图形窗口 如果已经按照教程配置,但是仍然没能正确运行。可以试着下载上面链接中的最新的5.11版本DevC++,重新安装
  • 同时出现两个框框很丑,要想关掉黑色的控制台窗口怎么办呢? 选择Project -> Properties
  • 点击 Build targets,把上面的 Type 改为 GUI application ,而不是 Console application, 点击OK
  • 选择 Build -> Rebuild, 然后选择Build -> Run 运行(工具栏也有,直接点就行)
  • 可以看到控制台窗口已经没了
  • 直接双击运行生成的exe文件也是没有控制台窗口的
  • Codeblocks已经配置完成
  • 但是这样的话每次新建工程都要重新配置链接库
  • 可以保存为模板,下次新建时选择

(3) DevC++

小熊猫Dev-C++

这里推荐一款由高校老师开发的一款Dev-C++,内置EGE,打开即可使用,免去安装EGE的烦恼,并且为DevC++增加了不少强大的实用功能。

https://royqh.net/devcpp/

正常Dev-C++的安装EGE步骤

安装步骤

  • 先在DevC++桌面图标右键,选择打开文件所在的位置

然后就进入到了DevC++所在的安装目录

复制头文件和库文件

目的是将安装包中的EGE头文件和 lib 库文件放到DevC++安装目录中对应的位置

1. 复制头文件

将EGE安装包 include 目录中的文件全选(txt文件就不用了),复制粘贴到 DevC++对应include目录参考路径: D:\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include

DevC++安装目录中对应的include目录,如下图。

2. 复制库文件

链接库文件分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 放置的目录

好了,头文件和库文件就已经完成了

新建工程
  • 现在要使用DecV++新建工程 首先打开DevC++,点击 File–> New–>Project…, 新建工程

新建一个空项目(Empty Project),项目名字随意(这里就直接用EGE了),选择 C++ Project(默认), 点击 OK

然后需要选择DevC++工程保存的目录, 选好位置后,新建一个目录(和刚才取的项目名相同,方便管理, 这里就用EGE了), 点击打开,然后点击 保存,项目就建好了。

可以看到左边项目下,自动帮我们新建了一个文件

然后我们点击工具栏上的 保存图标, 文件命名为 “main.cpp”

编译参数配置
  • 接下来要对项目进行配置 点击 工具(Tools), 选择 编译选项(Compiler Option…)

配置的编译器分为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类时会出现 链接错误

  • 测试EGE 将下面的测试例程复制粘贴到 main.cpp 中,
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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

然后点击 编译运行

如果没有任何报错,出现如下界面,就说明已经安装成功,如果报错,那就回去检查检查哪一步出了问题

[1]去掉控制台(黑色框框)

可以看到,Devc++是默认显示控制台的,如果想要去掉 点击工具栏 项目(Project) –>编译选项(Prject Option…)

项目类型(Type) 选择Win32 GUI (图形用户界面程序), 而不是控制台程序(Win32 Console), 点击OK即可

再点击Rebuild All, 然后点击 编译运行(Compile & Run) 就OK了

[2] DevC++配置常出现问题

找不到对应库 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

(4) 命令行使用GCC编译

  • 所用EGE安装包 : ege20.08_all
  • 编译器版本 : MinGW-G64 GCC 8.1.0

需要先安装好GCC, 是MinGW-W64的,而不是MinGW,这两个是不同的 下面按64位的配置

[1] MinGW-W64 的安装(也可以下载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 文件夹,然后解压到里面。
  • 加到环境变量 然后将上面的 bin 目录加到环境变量中, 我的目录是 D:\mingw-w64\mingw64\bin, 自己到目录里面复制即可。

这样GCC就安装好了,命令行测试一下,先win + R调出 运行, 输入 cmd,调出命令行。

命令行输入 g++ –version 查看g++版本信息, gdb –version 查看gdb版本信息,能正确输入信息就OK了。

[2] EGE的安装
  • 放置头文件 把安装包include 目录中的文件复制,粘贴到 mingw-w64x86_64-w64-mingw32 文件夹的 include 目录中

参考路径 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库安装完成。

[3] 使用命令行编译
  • 新建一个文件夹,作为工作目录(如果有合适的,不新建也行) 如下图,我在 E:/VSProject/egeCmd 下新建了一个ege文件夹作为工作目录 即工作目录为 E:/VSProject/egeCmd/ege
  • 编写程序 如图,我新建了个main.cpp源文件,复制粘贴示例代码,保存

示例代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <graphics.h> //包含EGE的头文件

int main()
{ 
   
	initgraph(640, 480);				//初始化图形界面
	
	setcolor(EGERGB(0xFF, 0x0, 0x0));	//设置绘画颜色为红色
	
	setbkcolor(WHITE);					//设置背景颜色为白色
	
	circle(320, 240, 100);				//画圆
	
	getch();							//暂停,等待键盘按键

	closegraph();						//关闭图形界面
	
	return 0;
}
  • 打开命令行win + R调出 运行, 输入cmd,调出命令行。
  • 跳转到盘 命令行打开后,当前目录一般是C:\Users\用户。 如果目录所在的盘不同,先跳转到盘,上面我的工作目录是 E:/VSProject/egeCmd/ege, 在 E盘,所以要先跳转 输入 E:
  • 跳转到工作目录 使用 cd 目录命令跳转,工作目录是 E:\VSProject\egeCmd\ege,所以命令是 cd E:\VSProject\egeCmd\ege
  • 编译 输入 g++ 源文件名 -o 生成文件名.exe 链接命令

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

  • 运行程序 命令行输入exe文件名,或者直接双击exe文件,运行程序,这里是 ege.exe
  • 多文件编译

如下图,有两个源文件,一个头文件

下面是三个文件的内容 main.cpp

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#ifndef _HEAD_TEST_H
#define _HEAD_TEST_H

void draw();

#endif //!_HEAD_TEST_H

test.cpp

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <graphics.h>
#include "test.h"

void draw()
{ 
   
	setfillcolor(BLUE);
	bar(100, 100, 300, 300);
}

如果有一个或多个源文件,那么g++命令中的文件名换成 *.cppg++ *.cpp -o ege.exe -lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus

编译链接成功,会生成exe文件

运行程序 命令行输入exe文件名,或者直接双击exe文件,运行程序,这里是 ege.exe

其它GCC命令,可以自行上网查找资料

(5) VS Code + GCC

这里有别人发的B站安装视频,如果想看安装视频的可以去看

https://www.bilibili.com/video/av88687187/

  • 所用EGE安装包 : ege20.08_all
  • 编译器版本 : MinGW-G64 GCC 8.1.0

  需要先自行安装好GCC,推荐 TDM-GCCMinGW-W64

下面按64位的配置

[1] MinGW-W64 的安装

请参考 (4)命令行使用GCC编译 中的 [1] MinGW-W64 的安装

  请确认下载的64位版本是 x86_64-posix-seh , 而不是 x86_64-posix-sjlj

[2] EGE的安装

请参考 (4)命令行使用GCC编译 中的 [2] EGE的安装

[3] VS Code 配置

  关于VS Code的C++配置,可以查看VS Code 官网的配置说明,里面有配置的说明,按着配置说明来即可,过程说得挺清楚(如果之前已经使用过VS Code,那肯定已经搞过)

VS Code 官网的配置C++说明

https://code.visualstudio.com/docs/cpp/config-mingw

既然使用 VS Code, 那就默认了解 VS Code 的配置文件写法或者了解配置文件的配置选项含义,这个就不多说了,可以看上面的官网文档,或者自行搜索,确保能运行 C++ 的Hello world程序为止。

  编译C++是需要安装下面这款插件的,扩展里直接搜 C/C++ 即可

配置好C++后,下面来讲解设置如何配置ege。

新建项目

  • 新建一个文件,作为工作目录,然后用VS Code 打开
  • 添加源文件 点击新建文件,命名为 文件名.cpp

复制粘贴下面的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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

  • 添加 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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{ 
   
    "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插件运行和VSCode 调试
1.Code Runner插件

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的运行命令已经存在了的话,修改一下即可,可以用 // 或 /* */ 将原来的注释掉)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"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 行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"code-runner.runInTerminal": true,          /* 在集成终端中运行 */
"code-runner.ignoreSelection": true,        /* 忽略所选部分,始终运行整个文件 */
"code-runner.fileDirectoryAsCwd": true,     /* 将文件所在目录设为当前工作目录 */
"code-runner.saveFileBeforeRun": true,      /* 运行前保存文件*/

示例如下:(请注意加入设置项的位置,不要被其它设置项用括号包含在内)

  • 已经配置完成了保存文件,跳转到 main.cpp,右键,选择 Run Code,或者单击右上角的三角形运行按钮,看看是否运行成功。控制台是没有的,已经集成在下面的终端了。

出现如下运行结果就OK了。

2. VSCode启动任务配置

  除了上面使用 CodeRunner插件运行的方法,下面介绍的是使用 VSCode 自身的配置文件来配置。   运行方式是菜单 运行->启动调试(F5) (现在还没配置,运行不了)

  • 配置任务 tasks.json 点击 终端 -> 配置任务

选择 C/C++: g++.exe build active file

然后会生成一个 tasks.json 文件, 复制粘贴下面的 tasks.json 配置文本。 注意:

  • “command”g++.exe 的绝对路径,g++.exe 文件在编译器的bin目录中。根据自己的安装位置情况填写,如"D:/mingw-w64\\mingw64\\bin\\g++.exe"
  • “option”:”cwd” 就写GCC的bin目录,就是g++.exe所在的目录, 根据自己的安装位置情况填写。

(这里注意了,是g++.exe,而不是gcc.exe,因为是C++库,需要用C++编译器编译)

下面这个是EGE所需的链接参数

-lgraphics64 -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus

tasks.json

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{ 
   
// 有关 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) 点击 运行->添加配置

然后会生成一个 launch.json 文件, 复制粘贴下面的配置文本。 注意:

  • externalConsole, 设置是否是外部控制台 true 为带控制台窗口,运行时产生一个独立的控制台窗口 false 为控制台内容在VS终端窗口中显示,不额外产生控制台窗口。
  • miDebuggerPath:填安装的编译器中gdb.exe的路径,根据自己的安装情况填写(就在那个mingw64里的bin目录中) 我的是 “D:\\mingw-w64\\mingw64\\bin\\gdb.exe”

文件 launch.json

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{ 
   
  "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 中有个参数

  • ${wordspaceFolder}\\*.cpp 表示编译直接位于工作空间文件夹下的所有cpp源文件(不包含子文件中的cpp源文件),即多文件编译。多个源文件是一个整体,这意味着编译的所有源文件中只能有一个 main() 函数,并且不能冲突。
  • 如果你想要单独编译一个文件,一个源文件作为一个程序,源文件之间彼此独立,那么可以把 {wordspaceFolder}\\*.cpp 换成 {file},这样就只会编译 当前文件,编译的时候需要先点击要编译的源文件,再点击运行按钮。

另外说明   对于多文件编译, 文件 launch.json 中的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"${workspaceFolder}\\*.cpp"

  可能使编译器无法正确编译,因为目前发现有部分编译器如TDM-GCC无法识别 * 通配符 ,所以如果编译,可以将这个参数换成想要编译的源文件。

  项目树如下图,项目工作空间下,有source文件夹,main.cpp, file.cpp,,并且source文件夹中有test.cpp

那么参数为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//多文件编译
"${workspaceFolder}\\main.cpp",
"${workspaceFolder}\\file.cpp",
"${workspaceFolder}\\source\\test.cpp",

完整 launch.json文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{ 
   
// 有关 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
            }
        }
    ]
}

(6) C-Free

  • 所用C-Free版本: C-Free 5, 32位
  • 附C-Free 下载链接:http://www.programarts.com/cfree_ch/ 需要注意的是,C-Free安装路径里不能带空格 但是它自己安装的时候也会有空格,把 “C-Free 5” 改成 “C-Free5”, 即去掉空格
  • 使用的EGE安装包:ege19.01_all 由于 EGE20.08 不再内置 gdiplus,而C-Free太过老旧(别用C-Free了好不好),没有带有 libgdiplus.a,所以无法安装 EGE20.08,只能安装 EGE19.01
头文件和库文件的放置

主要是将安装包中的头文件和库文件放到正确的位置

  1. 将EGE安装包 include 目录中的文件全选(txt文件就不用了),复制粘贴到C-Free对应include目录中 参考路径( E:\C-Free5\mingw\include )
  1. 将EGE安装包中的 lib 目录下的库文件文件放到C-Free中库文件的放置目录 库文件的选择:选择的是mingw32文件夹, 把EGE安装包中mingw32中的 libgraphics.a文件 放置位置参考路径( E:\C-Free5\mingw\lib )
项目的配置
  • 打开C-Free, 选择新建工程
  • 选择控制台程序, 工程名称随意(这里取ege), 保存位置选个合适的目录,点击确定。
  • 选择一个简单的程序(选其它也行), 点击下一步
  • 选择C++语言, 不可选C语言
  • 选择一个构建配置(这里选mingw5)
  • 这时会打开我们的项目,右边是我们项目中的文件
  • 点击工程->设置
  • 点击 连接, 在下面参数里复制粘贴上下面这一行

-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm

(注意到图片里有个-lgdiplus,这里不要加)

  • 换成Release, 复制粘贴同样的参数, 点击 确定

-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm

(注意到图片里有个-lgdiplus,这里不要加)

  • 打开 main.cpp, 复制粘贴上一下代码。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <graphics.h> //包含EGE的头文件

int main()
{ 
   
	initgraph(640, 480);				//初始化图形界面
	
	setcolor(EGERGB(0xFF, 0x0, 0x0));	//设置绘画颜色为红色
	
	setbkcolor(WHITE);					//设置背景颜色为白色
	
	circle(320, 240, 100);				//画圆
	
	getch();							//暂停,等待键盘按键

	closegraph();						//关闭图形界面
	
	return 0;
}
  • 点击 构建->构建, 看下下面有没有错误,没有就点击 运行
  • 出来下面的运行结果就说明配置已经完成
  • 点击 Debug \ Release 切换按钮,点击构建->重新构建, 运行, 看看结果有什么不同

避免重复配置的方法   刚才的项目配置只是针对一个项目的,如果下次新建一个EGE项目,还得重新配置   如果你经常写EGE程序,最好在 构建 中配置, 这样每次新建一个项目,就会自动为项目进行同样的配置,就免去了重新配置的麻烦。

  • 点击 构建->构建选项
  • DebugRelease添加同样的参数, 点击确定

-lgraphics -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -lgdiplus

  • 这样就可以避免每次新建项目都要重新配置了

如果你不想要后面的控制台窗口,可以关掉

  • 点击 工程->设置, 点击 “一般” 选项卡, 工程类型选择 “GUI”, 点击确定。 如果你想要显示控制台窗口,则选择 CUI
  • 然后点击 构建->重新构建, 然后点击 运行, 就可以看到控制台窗口就关闭了
  • 就可以看到控制台窗口不见了
C-Free 出现的问题

一些错误原因请参考 DevC++ 部分。 No such file or directory 显示下方的错误信息,那很有可能是安装路径 带有空格

问题相关解决办法https://jingyan.baidu.com/article/9989c746cc5b0cf648ecfeb1.html

这时找到安装目录,把路径上的空格都去掉,如下图,为软件自动生成的安装目录,带有空格,请把空格删掉

(7) Eclipse IDE for C/C++

  • 所用Eclipse IDE版本: Eclipse IDE for C/C++ Developers Version: 2020-03 (4.15.0)
  • 附Eclipse IDE 下载链接:https://www.eclipse.org/downloads/ 安装时选择Eclipse IDE for C/C++ Developers安装即可
  • 使用的EGE安装包:ege20.08_all
  • 所使用的编译器:mingw-w64, TDM-GCC也可
[1] MinGW-W64 的安装

参考 (4)命令行使用GCC编译 中的 [1] MinGW-W64 的安装

请确认下载的是 x86_64-posit-seh , 而不是x86_64-posit-sjlj

[2] EGE的安装

参考 (4)命令行使用GCC编译 中的 [2] EGE的安装

[3] Ecplise IDE 的配置
  • 打开Ecplise, 显示欢迎页,点击创建一个新C/C++项目(Create a new C/C++ project)
  • 选择C++管理构建(C++ Managed Build), 点击Next
  • 填写项目名称(任意取,填ege就行),选择一个空文件夹作为工作空间(最好找个地方新建个workspace目录,然后项目统一放里面), 选择之前安装好的GCC编译器,点击finish
  • 新建源文件填写源文件名(任意,但包含main函数的源文件命名main即可,容易区分)点击finish
  • 打开 main.cpp, 复制粘贴上以下代码, 保存文件。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <graphics.h> //包含EGE的头文件

int main()
{ 
   
	initgraph(640, 480);				//初始化图形界面
	
	setcolor(EGERGB(0xFF, 0x0, 0x0));	//设置绘画颜色为红色
	
	setbkcolor(WHITE);					//设置背景颜色为白色
	
	circle(320, 240, 100);				//画圆
	
	getch();							//暂停,等待键盘按键

	closegraph();						//关闭图形界面
	
	return 0;
}
设置build时自动保存文件(首次设置)

选择 窗口(Window) -> 首选项(Preferences)

点击 常规(General) -> 工作空间(workspace) -> 构建(Build), 把手动构建前自动保存(Save automatically before manual build) 勾选

添加库
  • 选择项目(Project) -> 属性(Properties)
  • 添加库,一共9个 点击下面的加号即可添加

分别添加下面9个库(如果你是构建32位的,把graphics64换成graphics)

graphics64 uuid msimg32 gdi32 imm32 ole32 oleaut32 winmm gdiplus

有两个,Debug 和 Realease,两个都要设置,点击 应用(Apply),然后点击 应用并关闭(Apply and close) 就可以了。

  • 点击锤子(构建 build), 或者点击项目(project) -> 构建项目 (Buidl Project) 如果构建后下面控制台(console) 显示 无错误(0 errors, 0 warnings), 就可以点击运行(Run)
  • 成功配置运行结果
  • 主要是添加库,上面那个需要 每次新建一个项目都要重新添加一次 全局设置和导出项目设置我暂时没找到,你们自己搜搜。

(8) CLion

1. 配置好C++环境(如果之前配置好了,就不用看了)
1.1 编译器

  Clion中没有自带编译器,需要自行下载编译器,安装后设置一下编译器路径即可。   CLion安装时会自动出现相关配置界面要求填入编译器安装目录,如果跳过,可以按如下操作进行设置。

  1. 点击 “File->Settings…” 进入设置界面。
  1. “Build,Exection,Deployment” -> “Toolchains” 中设置一下 Environment(编译器安装目录) (对于有多个编译器的,可以点击列表里的编译器,然后点上下箭头将其上移下移,第一个即为默认编译器

  对于安装了多个编译器的,可以在 Toolchain 里设置一下具体使用的编译器,原设置是使用默认编译器。

1.2 新建C++项目

  点击欢迎页New Project 或者 菜单栏 “File” 下拉菜单中的 “New Project” 都可以

  在弹出的New Project 窗口中,选择 “C++ Executable”,设置一下新建项目的位置,文件夹名也将是新项目的名字。

新建好的项目如下图所示,会自动创建一个Hello world程序。

点击工具栏上的运行按钮,运行程序。

下面运行栏中出现 “Hello, World!” 即为成功。

2. CLion项目中的EGE配置

  CLion是用cmake来做项目构建的,配置需要修改里面的 CMakeLists.txt 文件。

2.1 解压ege安装包

  将ege安装包解压到一个合适的位置,最好不要乱放。 (如下图,在E盘根目录中新建了ege文件夹,ege解压到其中。)

2.2 CMakeLists.txt文件

  在项目视图中,可以 main.cpp 旁边看到有一个CMakeLists.txt文件。

CMakeLists.txt 初始内容如下(untitled2为项目名)

2.3 配置CMakeLists.txt文件

  配置内容如下图所示:(图后有说明,这里为GCC编译器的配置) (untitled为创建时自动生成的项目名,可自行修改)

需要注意安装包中的两个路径 (配置文件中的路径根据个人电脑的安装包实际目录修改,这里为我个人的安装包目录)

CMakeLists.txt 内容如下(GCC)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)
CMakeLists.txt 内容如下(MSVC)

  如果你安装有VS,想使用VS里的MSVC编译器,则target_link_libraries里只需添加 graphics.libgraphics64.lib即可。(需要注意graphics.lib或graphics64.lib实际所在目录)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cmake_minimum_required(VERSION 3.20)
project(untitled)

set(CMAKE_CXX_STANDARD 14)
set(EGE_INC_DIR E:/ege/EGE20.08/include)			#设置EGE_INC_DIREGE头文件目录
set(EGE_LINK_DIR E:/ege/EGE20.08/lib/vs2019/x64)	#设置EGE_LINK_DIREGE库目录

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
2.4 CMakeLists.txt的配置说明

下面是对上面 CMakeLists.txt 配置内容的一个说明

2.4.1 添加ege的include目录和lib目录

  这里先定义两个路径参数 EGE_INC_DIREGE_LINK_DIR,表示上面ege库的路径 (实际路径需要自己到文件管理器中自行查看确定) ,方便引用。   lib 使用lib/mingw64 中的库文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	set(EGE_INC_DIR E:/ege/EGE20.08/include)
	set(EGE_LINK_DIR E:/ege/EGE20.08/lib/mingw64)

  使用 include_directories 添加ege的include目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	include_directories(${ 
   EGE_INC_DIR})

  使用 link_directories 添加ege的lib目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	link_directories(${ 
   EGE_LINK_DIR})
2.4.2 添加ege所需要链接的库

在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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
target_link_libraries(untitled libgraphics64.a
        libgdi32.a libimm32.a libmsimg32.a libole32.a
        liboleaut32.a libwinmm.a libuuid.a libgdiplus.a)

MSVC

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
target_link_libraries(untitled graphics64.lib)
3. 运行测试

修改 main.cpp内容为如下测试代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <graphics.h> //包含EGE的头文件

int main()
{ 
   
	initgraph(640, 480);				//初始化图形界面
	
	setcolor(EGERGB(0xFF, 0x0, 0x0));	//设置绘画颜色为红色
	
	setbkcolor(WHITE);					//设置背景颜色为白色
	
	circle(320, 240, 100);				//画圆
	
	getch();							//暂停,等待键盘按键

	closegraph();						//关闭图形界面
	
	return 0;
}

点击运行按钮,出现如下图形即可。

4. 其它配置

如果不需要控制台,可以加入编译参数 -mwindows

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set(CMAKE_CXX_FLAGS -mwindows)

EGE专栏: EGE专栏 上一篇:(一)EGE入门教程 下一篇:(三)EGE基础教程 上篇

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126060.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
iOS自带实现高斯模糊效果引iOS 7 UIToolbariOS 8 UIBlurEffect结
什么叫高斯模糊效果,通俗地说,就是毛玻璃效果,从iOS 7以来,就频繁地被设计使用,如果用得好,效果会显得非常的好。我们来看一个例子:
Cloudox
2021/11/23
9240
iOS自带实现高斯模糊效果引iOS 7 UIToolbariOS 8 UIBlurEffect结
iOS中图片(UIImage)拉伸技巧 原
简单暴力,却是最最常用的方法,直接将图片设置为ImageView的image属性,图片便会随UIImageView对象的大小做自动拉伸。这种拉伸的方法有一个致命的缺陷,它会使图像发生失真与形变。
珲少
2018/08/15
3.8K0
iOS中图片(UIImage)拉伸技巧
                                                                            原
《Motion Design for iOS》(三十六)
现在让我们添加我们的行。它们也都是UIImageView,所以也只用直接在背景图片上放置就可以了。
Cloudox
2021/11/23
5720
《Motion Design for iOS》(三十六)
iOS8的新特性:简洁易用的毛玻璃效果 原
IOS8之前,apple官方并不建议开发者使用类似毛玻璃的模糊效果,也并没有开放相关的接口,大部分的开发者是通过转化CGImage这个类来实现毛玻璃的模糊效果,并且实现的效果也很优秀。在IOS8之后,苹果官方新出了一个类UIVisualEffectView,通过这个类,实现毛玻璃效果变得轻而易举,而且效率非常之高,下面,我们来介绍下这个类的简单用法。
珲少
2018/08/15
1.8K0
iOS8的新特性:简洁易用的毛玻璃效果
                                                                            原
ios开发基础知识 - 1
输出 command+shift+r NSLog(@"log: %@ ", myString);  NSLog(@"log: %f ", myFloat);  NSLog(@"log: %i ", myInt); 显示图片 CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 100.0f); UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect]; [myImage
用户1172164
2018/01/16
6440
ios-zbar scanview 根据扫描区域切割图片
在scanview中添加扫描区域 ZBarReaderViewController *reader = [ZBarReaderViewController new]; reader.readerDelegate = self; //CGRect frame= CGRectMake(20, 30, 320, 260); reader.scanCrop= CGRectMake(0.2, .1, .47, .8);   自定义scanview添加一个自定义的扫描框 - (UIView *)
阿新
2018/04/12
1.2K0
给TableView添加背景
iPhone SDK提供了默认的几个TableView样式,但是如果想提供更个性化的样式就需要自己定义。 比如添加背景
EltonZheng
2021/01/26
1.5K0
iOS流水布局UICollectionView简单使用引实现结
开发中我们最常看到的可能是表视图UITableView了,但其实还有一个视图也很常见,特别是一些图片、商品、视频的展示界面,用UICollectionView来展现往往会更加方便。
Cloudox
2021/11/23
1.2K0
iOS流水布局UICollectionView简单使用引实现结
iOS_系统自带地图圆形区域选择范围
5.聚集操作:删除原理的大头针,在新经纬度添加大头针,并将地图移动到新的经纬度(反地理编码获得位置信息)
mikimo
2022/07/20
2.4K0
iOS_系统自带地图圆形区域选择范围
iOS开发CoreAnimation解读之六——CATransform3D变换的应用
        CATransform3D定义了一个变化矩阵,通过对矩阵参数的设置,我们可以改变layer的一些属性,这个属性的改变,可以产生动画的效果。首先,CATransform3D定义了一个4*4的矩阵,如下:
珲少
2018/08/15
1.6K0
iOS开发CoreAnimation解读之六——CATransform3D变换的应用
【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50163725
韩曙亮
2023/03/27
3.6K0
【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )
iOS 毛玻璃
继承关系:毛玻璃效果的继承于nsobject  在UIkit框架中所以应用的时候,导入uikit框架即可。
星宇大前端
2022/12/03
2540
iOS仿微信相册界面翻转过渡动画
点开微信相册的时候,想要在相册图片界面跳转查看点赞和评论时,微信会采用界面翻转的过渡动画来跳转到评论界面,好像是在图片界面的背面一样,点击完成又会翻转回到图片界面,这不同于一般的导航界面滑动动画,觉得很有意思,于是自己学着做了一下,其实也很简单,下面是实现的类似的效果图:
Cloudox
2021/11/23
1.2K0
iOS仿微信相册界面翻转过渡动画
记录下UIButton的图文妙用和子控件的优先显示
  UIButton的用处特别多,这里只记录下把按钮应用在图文显示的场景,和需要把图片作为按钮的背景图片显示场景;
tandaxia
2018/09/27
1.8K0
记录下UIButton的图文妙用和子控件的优先显示
iOS设置圆角及圆形图片
方方正正的样式往往会显得很生硬,而圆角的样式会让人产生别样的亲切感,现在越来越多地用到圆角,诸如用户头像之类的图片也大都用圆形来显示,本文就介绍如何设置按钮、文本框的圆角以及制作圆形的图片。
Cloudox
2021/11/23
2K0
iOS设置圆角及圆形图片
图层树和寄宿图 -- iOS Core Animation 系列一
一个视图就是在屏幕上显示的一个矩形块(比如图片,文字或者视频),它能够拦截类似于鼠标点击或者触摸手势等用户输入。视图在层级关系中可以互相嵌套,一个视图可以管理它的所有子视图的位置。 在iOS中,所有的视图都是从UIView这个基类派生出来的。UIView可以处理触摸时间,支持Core Graphics绘图,可以仿射变换等等操作。
Charlie_W
2018/10/19
1.4K0
图层树和寄宿图 -- iOS Core Animation 系列一
Quartz2D复习(一)--- 基础知识 / 绘制线段圆弧 / 图片水印 / 截图
1、Quartz 2D是一个二维绘图引擎,同时支持ios和Mac系统; Quart2D的API是纯C语言的,API来自于Core  Graphics框架:
tandaxia
2018/09/27
2.7K0
Quartz2D复习(一)---  基础知识 / 绘制线段圆弧 / 图片水印 / 截图
iOS滑动条UISlider的使用方法
如上图所示,在图中有四个内容:滑动条本身、最小值label、最大值label、当前值label。
Cloudox
2021/11/23
2.6K0
iOS滑动条UISlider的使用方法
iOS使用xcode可视化图像编辑功能进行图片拉伸
在我的另一篇博客http://my.oschina.net/u/2340880/blog/403996中探讨了IOS拉伸图像(UIImage)的几种方法和一些小经验,这篇是一个补充,再将xcode中的另一种可视化拉伸图像的方法的使用介绍给大家。
珲少
2018/08/15
1.8K0
iOS使用xcode可视化图像编辑功能进行图片拉伸
【iOS】图片裁剪
【iOS】图片裁剪 UIImage *imageTop=[UIImage imageNamed:@"1111.jpg"]; //根据创建的image 进行区域裁剪(关键代码) CGImageRef refTopImg = CGImageCreateWithImageInRect(imageTop.CGImage, CGRectMake(0, 0, imageTop.size.width, imageTop.size.height/2)); _topImageView =[[UIImageView all
用户6094182
2019/08/23
2.8K0
推荐阅读
相关推荐
iOS自带实现高斯模糊效果引iOS 7 UIToolbariOS 8 UIBlurEffect结
更多 >
目录
  • 目录
  • EGE图形库的安装
    • EGE20.08新版发布啦
      • 安装配置的变化
    • 不要再安装19.01版本了,谢谢
      • GCC编译器的链接参数
    • 1. 下载
      • EGE 20.08
      • 下载链接
      • 安装包注意事项
    • 2. 安装
      • 文件复制示意图
      • (1) Visual Studio
      • (2) Codeblocks
      • (3) DevC++
      • (4) 命令行使用GCC编译
      • (5) VS Code + GCC
      • (6) C-Free
      • (7) Eclipse IDE for C/C++
      • (8) CLion
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档