You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xcode 14.1中成功编译开源Apple macOS国际象棋源码

完整编译运行macOS Chess源码(369-408版本区间)的步骤及错误修复

先确认:你提到的macOS Chess确实是基于Objective-C编写,底层对接sjeng这个C语言国际象棋引擎,这点没错。

下面是能成功编译运行的完整步骤,以及针对你遇到的build-book脚本错误的具体修复方案:

一、前期准备

  • 使用Xcode 14.1,确保已配置有效的Apple开发者账号
  • 下载369-408版本区间的Chess源码

二、项目基础配置修改

  • 注释Chess.xcconfig文件中的所有#include行,避免系统配置冲突
  • 删除Chess.entitlements文件中的com.apple.private.tcc.allow权限项,移除私有权限依赖
  • 修改Bundle标识符:将默认的com.apple.Chess改为自定义值(比如com.yourdomain.CustomChess)
  • 在Xcode中为项目配置对应开发者账号的描述文件,确保签名配置正常

三、修复sjeng引擎C99编译错误

针对Implicit declaration of function is invalid in C99错误:

  • 定位到报错的C代码文件,在文件顶部添加缺失函数的声明(比如报错函数是foo(),就补加int foo();,对应实际返回值类型)
  • 或调整代码顺序,将函数定义移到调用语句之前

四、解决build-book脚本核心错误

这个build-book脚本用于生成国际象棋开局库文件nbook.db,依赖编译完成的sjeng.ChessEngine可执行文件。你遇到的错误是脚本找不到该可执行文件,修复步骤如下:

  1. 单独编译sjeng引擎

    • 在Xcode项目导航器中选中sjeng.ChessEngine目标
    • 点击Xcode顶部的「Build」按钮,确保该目标编译完成,产物会生成在DerivedData/[项目名]/Build/Products/Development/目录下
    • 验证路径:手动打开该目录,确认sjeng.ChessEngine存在
  2. 修改build-book脚本路径

    • 打开项目中的build-book脚本文件
    • 找到SJENG=/Users/.../sjeng.ChessEngine这一行,替换为你刚才验证的实际路径
    • 保存脚本后,重新执行编译
  3. 备选方案:手动生成开局库并添加到项目

    • 打开终端,进入Chess源码目录
    • 执行编译好的sjeng引擎路径+脚本命令:
      /path/to/your/sjeng.ChessEngine < nbook.pgn > nbook.db
      
    • 将生成的nbook.db拖入Xcode项目的资源目录,确保被添加到目标的Copy Files阶段
    • 在Xcode的Build Phases中,找到执行make nbook.db的External Build Tool步骤,禁用该步骤

五、编译运行

  • 选中Chess主目标,选择Mac真机或兼容的模拟器作为运行目标
  • 点击Xcode的「Run」按钮,完成编译后即可启动Chess游戏

内容的提问来源于stack exchange,提问作者Nerdy Bunz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 15:31:41