02 集成SDL(QT + iOS)
一、 QT集成SDL

能成功打印版本号,即SDL集成成功

二、iOS集成SDL2
1、下载
SDL源代码可以到SDL官网下载SDL2.0,如下图

2、编译下载好后,解压,在Xcode-iOS目录下打开SDL文件里SDL项目,分别选择模拟器和真机build,生成真机和模拟器的.a库,在products目录下右键libSDL2.a,show in finder显示如下图,Debug-iphoneos和Debug-iphonesimulator下各有一个libSDL2.a.
2.1 打开项目

2.2 选择真机静态库

2.3 选择模拟器静态库

2.4 show in finder

2.5 合并
把模拟器和真机的静态库包进行合并,终端的指令如下:
lipo -create 真机build生成的.a文件路径 模拟器build生成的.a文件路径 -output 合并后的路径/合并后的文件名
Lipo -create
/Users/aubrey/Library/Developer/Xcode/DerivedData/SDL2test-fpmcvxogqzgqzyaxzmhkrehgerqy/Build/Products/Release-iphoneos/libSDL2test.a
/Users/aubrey/Library/Developer/Xcode/DerivedData/SDL2test-fpmcvxogqzgqzyaxzmhkrehgerqy/Build/Products/Release-iphonesimulator/libSDL2test.a
-output /Users/aubrey/Desktop/libSDL2.a
2.5.1 如果出现报错

【解决的办法】
就是:
①在打模拟机静态库的时候,在build seting中,对于排除掉的架构,添加上arm64 ,
②在打真机包的时候,不需要排除任何架构,不然,会导出来的静态库,无法在64位的真机中运行
所以 ,目前在 Xcode12 的情况下,是存在这个问题的,在Xcode13中是否会修复掉这个问题,不确定。但目前的确存在这个问题。
这样子,操作后,重新打出来的静态库,将他们合并 ,就能够,既在真机上跑, 也能在模拟机上跑。
3、集成SDL的静态库,以及头文件到iOS项目
①把SLD2项目本身的lib,以及编译好的静态库 SLD2.a 放入到iOS项目中。
②在buildsetting中设置 两个path,即 header path 和 lib path,一个是头文件的路径,一个是库的路径

4、添加依赖的系统库
libz.tbd
libbz2.tbd
libiconv.tbd
浙公网安备 33010602011771号