这个问题通常是由于编译器构建的SDL2库与使用的架构不同而导致的。下面的步骤可以解决这个问题。
从SDL官网下载SDL2源代码,并在终端中解压。
在终端中进入解压的文件夹并运行以下命令:
./configure
make
sudo make install
这将在默认位置(/usr/local/lib)中安装SDL2库。
在Xcode中,打开您的项目,并转到“Build Phases > Link Binary with Libraries”。
单击“+”按钮,并添加以下两个框架:
libSDL2-2.0.0.dylib
libSDL2main.a
在“Build Settings > Search Paths > Header Search Paths”中添加以下路径:
/usr/local/include/
和以下项目路径:
$(PROJECT_DIR)/../SDL2/include/
这将确保Xcode可以找到所需的头文件。
在AppDelegate.m中添加以下代码:
#include "SDL_main.h"
#include "SDL.h"
#import
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
int argc = 1;
char *argv[2] = { "appName", NULL };
SDL_SetMainReady();
SDL_main(argc, argv);
return YES;
}
这会启用SDL2的main()函数,以便Xcode可以正确链接您的项目。
这应该解决在arm64 Mac上出现未定义的SDL2符号的问题。