本文提供了将EasyX适配到MinGW上的库文件,并详细介绍如何将EasyX配置到DevCpp或CodeBlocks等以MinGW为编译器的集成开发环境。
平时我工作忙,有问题直接在后面留言,我会尽力修改。
(早期版本easyx4mingw_20220610、20220901不再提供下载)
支持TDM-GCC4.8.1及以上版本(32位和64位均支持)。即支持2013年9月28日及之后发布的所有版本TDM-GCC。
使用TDM-GCC4.8.1及以上版本的集成开发环境都可以支持。例如:
同时额外支持:
MinGW-w64的版本繁多,支持有限。例如对于MinGW-w648.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。
下载的压缩包内文件如下:
easyx4mingw_xxxxxxxx.zip├include
下载的压缩包先解压缩,然后将include下的头文件和lib32/lib64下的库文件,分别拷贝到MinGW的头文件和库文件中。如果不确定具体的库文件路径,参考本文末尾的QA部分。
链接选项增加:-leasyx,这样可以在编译的时候链接libeasyx.a库文件。每个项目都要这样设置一次,然后编译即可。
打开tdm64-gcc-9.2.0.exe进行MinGW安装:
打开CLion(以2021.2.3英文版为例)
菜单File->Settings...,左侧选择Build,Execution,Deployment/Toolchains设置,右侧点“+”,选MinGW,在Environment一项选择D:\App\TDM-GCC-64,然后下面的所有项目都会自动配置好。
如果“+”下面有多项配置,选中MinGW,拖动到最上面,使其成为默认项。点OK保存设置。
下载easyx4mingw_xxxxxxxx.zip,解压缩。
将include文件夹下的easyx.h和graphics.h拷贝到D:\App\TDM-GCC-64\x86_64-w64-mingw32\include文件夹里。
将lib64\libeasyx.a拷贝到D:\App\TDM-GCC-64\x86_64-w64-mingw32\lib文件夹里。
将lib32\libeasyx.a拷贝到D:\App\TDM-GCC-64\x86_64-w64-mingw32\lib32文件夹里。
安装完成。
打开CLion,菜单File->NewProject,选择C++Executable,在Location里填写项目路径,点Create按钮创建项目,然后输入以下代码:
link_libraries(libeasyx.a)编译执行,即可看到画出了一个圆。
将include文件夹下的easyx.h和graphics.h拷贝到D:\App\CodeBlocks\MinGW\x86_64-w64-mingw32\include文件夹里。
将lib64\libeasyx.a拷贝到D:\App\CodeBlocks\MinGW\x86_64-w64-mingw32\lib文件夹里。由于Code::Blocks20.03只含有64位的mingw,故只需要拷贝这一个库文件。
特别注意:因为Code::Blocks20.03带的是64位MinGW,所以从lib64下面拷贝libeasyx.a。如果使用Code::Blocks17.12,自带的是32位MinGW,就要从lib32下面拷贝libeasyx.a。后面的QA部分列出了常见编译器自带的MinGW版本情况。
(1)创建新项目:菜单File->New->Project...,选择Consoleapplication,点Go进入项目向导。语言选择C++,项目名称Test,路径D:\MyDocs\(或根据自己的情况填写),编译器选择GNUGCCCompiler,其他选项基本不用动,完成。
(2)编写基本测试代码,代码如下:
#include
(4)点工具栏按钮Buildandrun或按F9编译执行,可以看到屏幕画出一个圆。如果这时有编译错误,请根据错误提示修正程序。
通过前面两步已经可以使用EasyX了。但是,每次写新项目都要设置链接库,有点麻烦。可以通过生成项目模版简化该过程:
菜单File->Saveprojectastemplate...,填写模版名称:EasyXApplication,完成。
下次再创建项目时,可以选择Usertemplates下的EasyXApplication,然后选择路径、项目名称,直接开始编写EasyX绘图程序,不用再设置链接库。
将easyx.h和graphics.h拷贝到D:\App\DevCpp\TDM-GCC-64\x86_64-w64-mingw32\include文件夹里。
将lib64\libeasyx.a拷贝到D:\App\DevCpp\TDM-GCC-64\x86_64-w64-mingw32\lib文件夹里。
将lib32\libeasyx.a拷贝到D:\App\DevCpp\TDM-GCC-64\x86_64-w64-mingw32\lib32文件夹里。
(1)创建新项目:菜单File->New->Project...,选择Consoleapplication,项目名称Test,语言选择C++,点OK,然后将Test.dev保存到D:\MyDocs\Test\(或根据自己的情况填写),完成。
#include
(4)点工具栏按钮Compile&run或按F11编译执行,可以看到屏幕画出一个圆。如果这时有编译错误,请根据错误提示修正程序。
菜单File->New->ProjectTemplate...,填写模版名称:EasyXApplication,其他选项可以根据自己喜好填写,完成。
下次再创建项目时,可以直接选择EasyXApplication,然后填写项目名称、选择路径,直接开始编写EasyX绘图程序,不用再设置链接库。
Q:我配置不好,如何确定是我本机的问题,还是库的问题?有没有封装好的给我测试一下?
如果可以看到画出一个圆,表示库没有问题。此时,可以选择使用这个版本的DevC++,也可以再尝试排查自己之前的配置步骤有什么问题。
Q:文件夹好多,我究竟应该把库文件拷贝到哪里?
A:不同的集成开发环境,所集成的MinGW版本不同,配置的路径也不完全一致。下表列出了常见集成开发环境默认的头文件和库文件路径:
注:蓝桥杯旧版,指第十三届蓝桥杯大赛学生机C/C++编程环境所用的Dev-C++5.4.0(32位mingw版),线程模型为win32。从第十四届蓝桥杯开始,使用DevCpp5.11,内置的编译器是tdm-gcc4.9.2,该版本及之后版本使用的线程模型为posix。
Q:创建项目模版时提示错误:UnabletowritetoC:\ProgramFiles(x86)\Embarcadero\Dev-Cpp\Templates\EasyXApplication.template。
A:如果将Dev-C++安装到C:\ProgramFiles下面,那么文件的修改是需要管理员权限的。所以,用管理员权限启动Dev-C++,再重复创建项目模版的步骤即可。成功创建项目模版后,平时使用时,不需要管理员权限启动。
Q:我以前安装过其他版本的Dev-C++,这次严格按照教程来操作,还是有问题,请问怎么解决?
A:一些老版本的Dev-C++的遗留配置文件可能会对新版本产生影响,配置文件路径为:C:\Users[用户名]\AppData\Roaming\Dev-Cpp,将整个文件夹删掉就好。如果不好找到,就在文件管理器的地址栏输入%APPDATA%\Dev-Cpp敲回车,就可以自动跳转到该文件夹,删除即可。
Q:粘贴一些示例代码后,提示无法使用_getch函数。
A:用getch替代。
Q:系统里安装了多个编译器会有影响吗?
A:很可能会。请检查编译器设置:
Q:怎么也配置不好,找不到问题在哪,怎么解决?
A:重点检查一下“编译日志”。以官方原版Dev-Cpp6.3为例,配置好之后,点击“全部重新编译”(或按F12),然后看编译日志:
以示例中的Dev-Cpp6.3环境为例,编译参数为:
g++.exe-cmain.cpp-omain.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++.exemain.o-oTest.exe-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