Linux 下使用 EasyX
一、EasyX 与 CLion 简介
(一)、EasyX
EasyX,全名:“EasyX Graphics Library for C++”。由于其采用静态编译,并不依赖任何 dll,超低的学习成本,深受许多开发者喜欢,在下面列举一些 EasyX 的特点:
- EasyX 是针对 C++ 的图形库,可以帮助 C/C++ 开发者快速上手图形设计。
- 由于其简单的操作,在进行一些 C/C++、图形学等课程设计实验时,可以专注在课程知识上,不被绘图部分牵扯太多精力。
- EasyX 能够在 Visual Studio 上完美使用,为很多开发者节约适配时间。
- EasyX 在 C/C++ 学习、编写小游戏、图形学、粒子系统、物理模拟等多种场景下均有运用。「EasyX 作品」
EasyX 具有如此多的优点,但是在早期仅支持 MVSC 编译器。对于使用 GNU/Linux 发行版的开发的开发者来说造成很多的困扰。终于,在 2022 年 6 月 10 号,EasyX 提供适配 MinGW 的 库文件,从这开始 EasyX 正式支持使用 minGW 编译器,这就为使用 GNU/Linux 开发的开发者提供切入点!
(二)、CLion
CLion 是由 JetBrains 出品的专门为开发 C 以及 C++ 所设计的跨平台集成开发环境(IDE)。其以 IntelliJ 为基础设计,包含许多智能功能来提高开发者的生产力。同时其强大的跨平台能力使之 CLion 能够在 Linux、OS X 和 Windows 上开发 C 和 C++。
注意:在这里笔者仅仅以 CLion 为 IDE 开发环境开发 EasyX,但同时在 VScode 上也能成功开发 EasyX。其根本是 EasyX 支持使用 MinGW 编译器,与所使用的 C/C++ 开发环境无关。
那么接下来就开始学习如何通过 MinGW 与 CLion 使用 EasyX 吧!
二、Linux 下的 MinGW
(一)、安装 MinGW
假如所使用的 GNU/Linux 发行版为 Debian 系,及 Debian、Ubuntu 等,则可直接使用一下命令安装 MinGW 编译器。
sudo apt-get update
sudo apt-get install mingw-w64
假如,您使用的是其他 GNU/Linux 发行版,则可以参考 MinGW 官网「MinGW」
(二)、使用 MinGW-W64 编译器
MinGW,即 “Minimalist GNU for Windows”。意为适用于 Windows 的极简主义 GNU。
它是一个可自由使用和自由发布的 Windows 特定头文件和使用 GNU 工具集导入库的集合,允许在 GNU/Linux 和 Windows 平台生成本地的 Windows 程序而不需要第三方 C 运行时(C Runtime)库。[1]
简单来说:它实际上是将经典的开源 C 语言编译器 GCC 通过添加 Windows 独有的头文件、Win32 API 等其他集合,从而移植到 Windows 上。使之在 Windows 上也可以使用 GCC。
在这里,我们使用 MinGW-w64 编译器,区别于过去的只能编译 32 位可执行文件的 MinGW。MinGW-w64 既可编译 32 位可执行文件也可编译 64 位可执行文件。[2] 现如今使用的 MinGW 已经被 MinGW-w64 所取代, 所以在下面笔者所述的 MinGW 皆为 MinGW-w64。
MinGW 特点
- MinGW-w64 位开源软件 [3]。
- MinGW-w64 拥有一个活跃的开源社区。
- 支持 C、C++、Ada, Obj-C, Obj-C++, OCaml 在内的一系列语言。
- MinGW-w64 直接使用 Windows 的 C 语言运行库,编译下的可执行程序可以直接在 Windows 下运行。
- 许多 IDE 都支持 MinGW-w64,比如 Dev-Cpp、CLion、Code::Blocks、CFree 等。
那么在上一步我们已经成功安装了 MinGW,该如何去使用它呢?
1、CLion 构建工作链
CLion 工具链简介:
对于 CLion 中的 CMake 项目,工具链是构建和运行应用程序所需的所有必要工具的集合:工作环境,CMake 可执行文件,make 和编译器以及调试器。
您始终可以为一个项目拥有多个工具链,并在需要时在它们之间轻松切换。
当您开始使用 CLion 时,您已经有了默认的工具链。尽管可以在开发中使用它,但您可能还需要根据项目需要调整工具集(例如,更改工作环境或切换到其他编译器)。[4]
首先,我们需要去 /usr/bin
目录下寻找一下两个程序:
- x86_64-w64-mingw32-gcc
- x86_64-w64-mingw32-g++
如果成功找到,那么接下来笔者将通过在 CLion 上设置 MinGW 工具链的方式在 CLion 上使用 MinGW。
如图:
解释:
1、首先点击 “+” 创建新的工具链
2、将工具链名设置为 “mingw”
3、设置 C/C++ 编译器,如图所示。
注意:
在 CLion 中已经自带有构建工具 ninja、CMake 和调试器 GDB。如果读者在其他开发环境使用,如 nvim、VScode 等,需要自行安装。在接下来的使用中会用到上文程序。
2、CMake 构建编译环境
CMake 简介:
CMake 是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装 (编译过程)。
他能够输出各种各样的 makefile 或者 project 文件,能测试编译器所支持的 C++ 特性, 类似 UNIX 下的 automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。
这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。[5]
解释:
1、首先如上文步骤一样,点击 “+” 创建新的 CMake
2、修改 CMake 文件名
3、修改工具链,在 Linux 下默认使用 gcc,这里使用在上文构建的工具链。
至此,我们已经在 CLion 上做好的 MinGWd 的基础环境配置。那么开始码代码吧:)
三、CMake 构建开发环境
注意:在接下来所介绍的 CMake 使用皆为依据笔者所使用的 CMakeList 文件内容,简单介绍 CMake 命令。若想要深入理解 CMake,可以阅读「CMake Reference Documentation」,望见谅。
(一)、理解 CMake 基本工作原理
首先,我们在 CLion 新建项目,其基本结构如下:
解释:
第一项:在 CLion 官方文档下描述为 “在这里指定生成的 CMake 文件所需的位置”。在原生的 CMake 编译下通过 CMakeLists.txt 文件生成 CMakeFile 等一系列文件,CLion 则直接将其汇合为一个文件夹 “Build directory”。注意:这里仅代表 CLion,若在 VScode 下使用则还需更加深入了解 CMake 工作原理。
第二项:为 CMake 配置文件
了解了,基本项目架构,那么我们便开始简单解释 CMake 工作原理吧!
标签:CMake,Linux,EasyX,MinGW,使用,Test,cmake,CLion From: https://www.cnblogs.com/aaroncoding/p/17116879.html