慢羊羊的空间

无为,无我,无欲,居下,清虚,自然

只把 EasyX 拷贝进项目里,方便发给没有安装 EasyX 的人编译(以 MinGW 为例) 铜牌收录

当你想把自己用 EasyX 编写的代码发给别人时,也许对方因为没安装 EasyX 导致无法编译。这时候,你可以只把 EasyX 拷贝进项目里,然后随着项目一起打包发给别人,方便其他人编译。本文以 Code::Blocks(MinGW)为例,详细讲述这种方法。

1. 创建项目

打开 Code::Blocks 20.03,新建 Console application 项目,控制台应用程序(将解决方案和项目放在同一个文件夹)。假定项目路径在:D:\mydoc\TestEasyX。编译执行,确保 Code::Blocks 可以正确编译 C++ 程序。

2. 拷贝 EasyX 相关文件

到这里下载 MinGW 版本的 EasyX:https://go.easyx.cn/easyx-for-mingw,下载到的安装文件是 easyx4mingw_20220610.zip,使用压缩软件打开,并解压缩到项目的 EasyX 路径下。以下是文件结构,然后删掉用不到的文件:

D:\mydoc
	└ TestEasyX <folder>					// 项目路径
		├ bin <folder>						// 项目生成 exe 所在文件夹
		├ obj <folder>						// 项目中间文件所在文件夹
		├ EasyX <folder>					// EasyX 相关文件
 		│	├ include <folder>				// EasyX 的头文件
		│	│	├ easyx.h 					// 头文件(提供了当前最新版本的接口)
		│	│	└ graphics.h				// 头文件(在 easyx.h 的基础上,保留了若干旧接口)
		│	├ lib32 <folder>				// 【删掉】
		│	│	└ libeasyx.a				// EasyX 的 32 位库文件【删掉】
		│	├ lib64 <folder>
		│	│	└ libeasyx.a				// EasyX 的 64 位库文件
		│	├ lib-for-devcpp_5.4.0 <folder>	// 【删掉】
		│	│	└ libeasyx.a				// EasyX 针对老版本 MinGW 的库文件【删掉】
		│	└ readme.txt					// 说明文件,删掉【删掉】
 		├ main.cpp							// cpp 代码文件
 		└ TestEasyX.cbp						// 项目文件

删完以后的文件结构如下:

D:\mydoc
	└ TestEasyX <folder>					// 项目路径
		├ bin <folder>						// 项目生成 exe 所在文件夹
		├ obj <folder>						// 项目中间文件所在文件夹
		├ EasyX <folder>					// EasyX 相关文件
 		│	├ include <folder>				// EasyX 的头文件
		│	│	├ easyx.h 					// 头文件(提供了当前最新版本的接口)
		│	│	└ graphics.h				// 头文件(在 easyx.h 的基础上,保留了若干旧接口)
		│	└ lib64 <folder>
		│		└ libeasyx.a				// EasyX 的 64 位库文件
 		├ main.cpp							// cpp 代码文件
 		└ TestEasyX.cbp						// 项目文件

注:因为 Code::Blocks 20.03 默认带的是 64 位 MinGW,所以该范例删掉了 32 位的 EasyX 库。如果你使用的是 32 位 MinGW,根据自己需要进行文件精简。

3. 修改头文件中的路径

修改头文件路径,打开 d:\mydoc\TestEasyX\EasyX\include\graphics.h,将开始部分的:

#include <easyx.h>

修改为:

#include "easyx.h"

4. 修改链接参数

菜单 Project -> Build options...,左侧选中 Debug,右侧选择 Linker settings 选项卡,在 Other linker options 文本框内填写:EasyX\lib64\libeasyx.a -lgdi32 -lole32。然后左侧选中 Release,同样在 Linker settings 选项卡的 Other linker options 文本框内填写:EasyX\lib64\libeasyx.a -lgdi32 -lole32,确定。

5. 编写代码

作为例子,将以下代码复制到 TestEasyX.cpp 中:

#include "EasyX\Include\graphics.h"
#include <conio.h>

int main()
{
	initgraph(640, 480);
	circle(300, 200, 100);
	_getch();
	closegraph();
	return 0;
}

编译、执行,可以看到窗口中画了一个圆,成功。

至此,EasyX 已经顺利的配置在项目中,可以将这个项目的文件夹打包发给其他人,只要对方有 Code::Blocks,不需要安装 EasyX 就可以打开编译执行。

添加评论