Qt_setup_SDL2

教程

检查版本

Qt use MINGW, so download SDL2 in correspond version

主要参考的教程
次要参考的教程
比较全面的教程是,不过介绍用的是VS,导出模板,CMake配置也教了
环境路径设置好,对库的链接在pro文件中配置好,主程序中include即可。

个人疑问和AI回答

以下图片是下载下来的目录。
里面有lib ,mingw相关的有i686...x86_64-w64他们之间有什么不同吗?

动态库和静态库的使用场景

lib文件夹通常包含编译好的库文件,这些库文件是用于链接到你的应用程序中的,而不是直接用于运行时的。在Windows系统中,库文件通常是静态库(.lib)或动态库(.dll)dynamic link library,其中:

  • .lib文件是静态库文件,它们在编译时被链接到你的应用程序中,使得库的代码成为应用程序的一部分。
  • .dll文件是动态链接库文件,它们在运行时被应用程序加载,允许多个程序共享同一份库代码。

对于SDL(Simple DirectMedia Layer)这样的库,如果你需要在运行时动态加载库(比如在不支持静态链接的环境中),你应该使用.dll文件。在x86_64-w64-mingw32这样的目录下,通常会提供编译好的.dll文件,用于64位的Windows系统。

直接选择lib文件夹可能不会给你正确的文件类型或架构版本的库文件。你需要根据你的应用程序的需要(静态或动态链接)以及目标平台(32位或64位)来选择正确的文件。对于64位系统,确保选择的是64位的.dll文件,这样可以保证最佳的性能和兼容性。

两个mingw前缀的区别

i686是一个指令集架构,它是Intel 80686微处理器的简称,属于x86架构的32位版本。在Linux系统中,i686通常用来表示32位的Intel或AMD处理器。这个架构的名称来源于最初的80686处理器,尽管现代的处理器已经远远超出了最初的686型号的性能。

在编译软件或库时,如果你的目标是为32位的x86系统编译:

  • 在Linux发行版中,32位的库文件通常位于以i686命名的文件夹中。
  • 在Windows系统中,32位的库文件通常位于以x86命名的文件夹中。

对于64位系统,你应该选择64位的库文件(例如x86_64-w64-mingw32中的文件)

在发行版中tar和gz是什么

mingw.tar.gz 文件名中的 targz 分别代表两种不同的压缩和归档技术:

  1. tar:这是一个用于将多个文件和目录打包成一个单独文件的工具,通常用于在 Unix 和类 Unix 系统中。tar 本身并不压缩文件,它只将文件和目录归档。
  2. gz:这是 Gzip(GNU Zip)的文件扩展名,表示该文件经过压缩以减少其大小。Gzip 是一种常见的压缩算法,通常用于压缩 tar 归档文件。

结语

跟着教程配置环境不难,但是相关的信息对我这种新手而言还是有许多不懂的。