前言
本文提供了将 EasyX 适配到 MinGW 上的库文件,并详细介绍如何将 EasyX 配置到 DevCpp 或 CodeBlocks 等以 MinGW 为编译器的集成开发环境。
库文件下载
点击这里下载 easyx4mingw_20220901
点击这里下载 easyx4mingw_20220610 (上个版本)
支持 MinGW 版本
支持 TDM-GCC 4.8.1 及以上版本(32 位和 64 位均支持)。即支持 2013 年 9 月 28 日及之后发布的所有版本 TDM-GCC。
使用 TDM-GCC 4.8.1 及以上版本的集成开发环境都可以支持。例如:
- Code::Blocks 13.12 及以上版本
- DevCpp 5.8.0 及以上版本
同时额外支持:
- DevCpp 5.4.0 GCC MinGW 4.7.2(第十三届蓝桥杯大赛学生机 C/C++ 编程环境)
- C-Free 5.0(内置 GCC MinGW 3.4.5)
MinGW-w64 的版本繁多,支持有限。例如对于 MinGW-w64 8.1.0 版本,easyx4mingw 支持 x86_64-posix-seh、x86_64-win32-seh、i686-posix-sjlj、i686-win32-sjlj,但不支持 x86_64-posix-sjlj、x86_64-win32-sjlj、i686-posix-dwarf、i686-win32-dwarf。
注:MinGW 版本较多,推荐使用 TDM-GCC。(想了解区别,可以参考[这里])
文件清单
下载的压缩包内文件如下:
easyx4mingw_20220606.zip
├ include <folder>
│ ├ // 头文件(提供了当前最新版本的接口)
│ └ // 头文件(在 的基础上,保留了若干旧接口)
├ lib32 <folder>
│ └ // 针对 TDM-GCC 4.8.1 及以上版本的 32 位库文件
├ lib64 <folder>
│ └ // 针对 TDM-GCC 4.8.1 及以上版本的 64 位库文件
└ lib-for-devcpp_5.4.0
└ // 适用于 DevCpp 5.4.0 GCC MinGW 4.7.2 和 C-Free 5.0
配置说明
基本上,任何开发环境配置 easyx for mingw 都只需两步:
1. 安装库文件
下载的压缩包先解压缩,然后将 include 下的头文件和 lib32/lib64 下的库文件,分别拷贝到 MinGW 的头文件和库文件中。如果不确定具体的库文件路径,参考本文末尾的 QA 部分。
2. 增加编译时的链接选项
链接选项增加:-leasyx,这样可以在编译的时候链接 库文件。每个项目都要这样设置一次,然后编译即可。
注:对于 20220610 版本,需要在链接选项增加 -leasyx -lgdi32 -lole32。
配置详述
CLion 配置 EasyX 的详细说明
1. 安装 MinGW
CLion 默认不带编译器,需要手动安装。注意,MinGW 版本众多,目前 EasyX 支持 TDM-GCC 版本的 MinGW。下载页面:/tdm-gcc/download/,下文以版本 9.2.0 为例。
官网下载 tdm64-gcc-9.2. 或 镜像站下载 tdm64-gcc-9.2. 均可(57.6M)。
打开 tdm64-gcc-9.2. 进行 MinGW 安装:
- 取消勾选“Check for updated files on the TDM-GCC server”,然后点 Create 按钮。
- 设置路径(下文以路径 D:\App\TDM-GCC-64 为例)。
- 选择组件。可以全部勾选,对系统有洁癖的,可以取消“Start Menu items”、“Add to PATH”两项。
- 点 Install 按钮,稍后即可完成安装。约占用磁盘空间 490MB,4894 个文件。
2. 配置 CLion 使用 TDM-GCC
打开 CLion(以 2021.2.3 英文版为例)
菜单 File -> Settings...,左侧选择 Build, Execution, Deployment / Toolchains 设置,右侧点“+”,选 MinGW,在 Environment 一项选择 D:\App\TDM-GCC-64,然后下面的所有项目都会自动配置好。
如果“+”下面有多项配置,选中 MinGW,拖动到最上面,使其成为默认项。点 OK 保存设置。
3. 配置 EasyX 到 TDM-GCC
下载 easyx4mingw_20220901.zip,解压缩。
将 include 文件夹下的 和 拷贝到 D:\App\TDM-GCC-64\x86_64-w64-mingw32\include\ 文件夹里。
将 lib64\ 拷贝到 D:\App\TDM-GCC-64\x86_64-w64-mingw32\lib\ 文件夹里。
将 lib32\ 拷贝到 D:\App\TDM-GCC-64\x86_64-w64-mingw32\lib32\ 文件夹里。
安装完成。
4. 编写 EasyX 程序
打开 CLion,菜单 File -> New Project,选择 C++ Executable,在 Location 里填写项目路径,点 Create 按钮创建项目,然后输入以下代码:
-
#include <>
-
#include <>
-
-
int main()
-
{
-
initgraph(640, 480);
-
circle(320, 240, 100);
-
_getch();
-
return 0;
-
}
需要编辑 引入 EasyX 相关的库文件。在 add_executable(...) 这行前面,增加引入库文件的指令:
link_libraries()
编译执行,即可看到画出了一个圆。
Code::Blocks 配置 EasyX 的详细说明
以下配置说明仅以官方原版 Code::Blocks 20.03(64 位)为例,下载地址:Code::Blocks(集成 mingw) 20.03 - AppZip,假设 Code::Blocks 的安装路径为 D:\App\CodeBlocks。
1. 安装库文件
下载 easyx4mingw_20220901.zip,解压缩。
将 include 文件夹下的 和 拷贝到 D:\App\CodeBlocks\MinGW\x86_64-w64-mingw32\include\ 文件夹里。
将 lib64\ 拷贝到 D:\App\CodeBlocks\MinGW\x86_64-w64-mingw32\lib\ 文件夹里。由于 Code::Blocks 20.03 只含有 64 位的 mingw,故只需要拷贝这一个库文件。
特别注意:因为 Code::Blocks 20.03 带的是 64 位 MinGW,所以从 lib64 下面拷贝 。如果使用 Code::Blocks 17.12,自带的是 32 位 MinGW,就要从 lib32 下面拷贝 。后面的 QA 部分列出了常见编译器自带的 MinGW 版本情况。
2. 增加编译时的链接选项
(1) 创建新项目:菜单 File -> New -> Project...,选择 Console application,点 Go 进入项目向导。语言选择 C++,项目名称 Test,路径 D:\MyDocs\(或根据自己的情况填写),编译器选择 GNU GCC Compiler,其他选项基本不用动,完成。
(2) 编写基本测试代码,代码如下:
-
#include <>
-
#include <>
-
-
int main()
-
{
-
initgraph(640, 480);
-
circle(320, 240, 100);
-
getch();
-
closegraph();
-
return 0;
-
}
(3) 设置链接库:菜单 Project -> Build options...,左侧选择项目名称 Test,右侧选择选项卡 Linker settings,在 Other linker options 下的文本框里输入 -leasyx,完成。
(4) 点工具栏按钮 Build and run 或按 F9 编译执行,可以看到屏幕画出一个圆。如果这时有编译错误,请根据错误提示修正程序。
3. 生成项目模版,简化操作步骤
通过前面两步已经可以使用 EasyX 了。但是,每次写新项目都要设置链接库,有点麻烦。可以通过生成项目模版简化该过程:
菜单 File -> Save project as template...,填写模版名称:EasyX Application,完成。
下次再创建项目时,可以选择 User templates 下的 EasyX Application,然后选择路径、项目名称,直接开始编写 EasyX 绘图程序,不用再设置链接库。
Dev-C++ 配置 EasyX 的详细说明
以下配置说明仅以 Embarcadero 发布的官方原版 Dev-C++ 6.3 为例,下载地址:Dev-C++ 6.3 - AppZip,假设 Dev-Cpp 的安装路径为 D:\App\DevCpp。
1. 安装库文件
下载 easyx4mingw_20220901.zip,解压缩。
将 和 拷贝到 D:\App\DevCpp\TDM-GCC-64\x86_64-w64-mingw32\include\ 文件夹里。
将 lib64\ 拷贝到 D:\App\DevCpp\TDM-GCC-64\x86_64-w64-mingw32\lib\ 文件夹里。
将 lib32\ 拷贝到 D:\App\DevCpp\TDM-GCC-64\x86_64-w64-mingw32\lib32\ 文件夹里。
2. 增加编译时的链接选项
(1) 创建新项目:菜单 File -> New -> Project...,选择 Console application,项目名称 Test,语言选择 C++,点 OK,然后将 保存到 D:\MyDocs\Test\(或根据自己的情况填写),完成。
(2) 编写基本测试代码,代码如下:
-
#include <>
-
#include <>
-
-
int main()
-
{
-
initgraph(640, 480);
-
circle(320, 240, 100);
-
getch();
-
closegraph();
-
return 0;
-
}
(3) 设置链接库:菜单 Project -> Project Options...,选择选项卡 Parameters,然后在 Linker 里面输入 -leasyx,完成。
(4) 点工具栏按钮 Compile & run 或按 F11 编译执行,可以看到屏幕画出一个圆。如果这时有编译错误,请根据错误提示修正程序。
3. 生成项目模版,简化操作步骤
通过前面两步已经可以使用 EasyX 了。但是,每次写新项目都要设置链接库,有点麻烦。可以通过生成项目模版简化该过程:
菜单 File -> New -> Project Template...,填写模版名称:EasyX Application,其他选项可以根据自己喜好填写,完成。
下次再创建项目时,可以直接选择 EasyX Application,然后填写项目名称、选择路径,直接开始编写 EasyX 绘图程序,不用再设置链接库。
常见问题
Q:我配置不好,如何确定是我本机的问题,还是库的问题?有没有封装好的给我测试一下?
A:封装好 EasyX 的 DevC++5.11 绿色版:百度网盘 请输入提取码(提取码:8frc)。使用方法:
- 解压到 D:\App\DevCpp 下。
- 运行 (已设置好中文环境)。
- 创建新项目,选择 Multimedia 下面的 EasyX Application。
- 粘贴前文提到的测试代码,编译运行。
如果可以看到画出一个圆,表示库没有问题。此时,可以选择使用这个版本的 DevC++,也可以再尝试排查自己之前的配置步骤有什么问题。
Q:文件夹好多,我究竟应该把库文件拷贝到哪里?
A:不同的集成开发环境,所集成的 MinGW 版本不同,配置的路径也不完全一致。下表列出了常见集成开发环境默认的头文件和库文件路径:
集成开发环境 | 头文件路径 | 32 位库文件路径 | 64 位库文件路径 |
Code::Blocks 20.03 | 安装路径\MinGW\x86_64-w64-mingw32\include | (无) | 安装路径\MinGW\x86_64-w64-mingw32\lib |
Code::Blocks 17.12 | 安装路径\MinGW\include | 安装路径\MinGW\lib | (无) |
Code::Blocks 16.01 | 安装路径\MinGW\include | 安装路径\MinGW\lib | (无) |
Code::Blocks 13.12 | 安装路径\MinGW\include | 安装路径\MinGW\lib | (无) |
Dev-C++ 6.3 | 安装路径\TDM-GCC-64\x86_64-w64-mingw32\include | 安装路径\TDM-GCC-64\x86_64-w64-mingw32\lib32 | 安装路径\TDM-GCC-64\x86_64-w64-mingw32\lib |
Dev-C++ 5.11 | 安装路径\MinGW64\x86_64-w64-mingw32\include | 安装路径\MinGW64\x86_64-w64-mingw32\lib32 | 安装路径\MinGW64\x86_64-w64-mingw32\lib |
Dev-C++ 5.8.0 | 安装路径\MinGW64\x86_64-w64-mingw32\include | 安装路径\MinGW64\x86_64-w64-mingw32\lib32 | 安装路径\MinGW64\x86_64-w64-mingw32\lib |
Dev-C++ 5.4.0(蓝桥杯版*) | 安装路径\MinGW32\include | 安装路径\MinGW32\lib (需使用 lib-for-devcpp_5.4.0\) |
(无) |
C-Free 5.0 | 安装路径\mingw\include | 安装路径\mingw\lib (需使用 lib-for-devcpp_5.4.0\) |
(无) |
注:蓝桥杯版,指蓝桥杯官网提供的 Dev-C++ 5.4.0 版本。官方的 Dev-C++ 5.4.0 分两个版本,蓝桥杯使用的是其中的 32 位的 mingw 版。
Q:创建项目模版时提示错误:Unable to write to C:\Program Files (x86)\Embarcadero\Dev-Cpp\Templates\EasyX 。
A:如果将 Dev-C++ 安装到 C:\Program Files 下面,那么文件的修改是需要管理员权限的。所以,用管理员权限启动 Dev-C++,再重复创建项目模版的步骤即可。成功创建项目模版后,平时使用时,不需要管理员权限启动。
Q:我以前安装过其他版本的 Dev-C++,这次严格按照教程来操作,还是有问题,请问怎么解决?
A:一些老版本的 Dev-C++ 的遗留配置文件可能会对新版本产生影响,配置文件路径为:C:\Users\[用户名]\AppData\Roaming\Dev-Cpp,将整个文件夹删掉就好。如果不好找到,就在文件管理器的地址栏输入 %APPDATA%\Dev-Cpp 敲回车,就可以自动跳转到该文件夹,删除即可。
Q:粘贴一些示例代码后,提示无法使用 _getch 函数。
A:用 getch 替代。
Q:系统里安装了多个编译器会有影响吗?
A:很可能会。请检查编译器设置:
- 对于 Code::Blocks,菜单 Settings / Compiler...,Global compiler settings 下,Selected compiler 选择 GNU GCC Compiler,下面的 Toolchain executables 选项卡里检查一下 Compiler's installation directory,是不是 Code::Blocks 文件夹下的 MinGW。如果你的 Code::Blocks 安装路径是 D:\App\CodeBlocks,那么这里的编译器路径应该是 D:\App\CodeBlocks\MinGW。
- 对于 Dev C++ 6.3,菜单 Tools/Compiler Options...,下面的 Directories 选显卡,检查 Binaries、Libraries、C Includes、C++ Includes,是不是在 Dev C++ 的安装路径下。
Q:怎么也配置不好,找不到问题在哪,怎么解决?
A:重点检查一下“编译日志”。以官方原版 Dev-Cpp 6.3 为例,配置好之后,点击“全部重新编译”(或按 F12),然后看编译日志:
以示例中的 Dev-Cpp 6.3 环境为例,编译参数为:
-
g++.exe -c -o -I"D:/App/Dev-Cpp/TDM-GCC-64/include" -I"D:/App/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/include" -I"D:/App/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include" -I"D:/App/Dev-Cpp/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/9.2.0/include/c++"
-
g++.exe -o -L"D:/App/Dev-Cpp/TDM-GCC-64/lib" -L"D:/App/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/lib" -static-libgcc -lEasyX -lgdi32 -lole32
可以通过对照编译参数查找问题。
END
今天的分享到此结束了,如果在编程学习的路上遇到问题,不妨来我的编程学习交流基地一起来学习探讨
C/C++编程学习基地/?_wv=1027&k=CDsA9bcr