gpt4 book ai didi

c++ - 如何在 Mac 上编译 AssaultCube?缺少 libintl.h

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:07 24 4
gpt4 key购买 nike

我无法在 Mac 上编译 AssaultCube。我已经下载了最新的源代码并打开了里面的 Xcode 项目(因为运行“make”给我错误“'INTL/libintl.h' file not found”)。我安装了 Xcode,我经常使用它来编译我自己的代码,但他们的代码就是行不通。

首先,源码有语法错误。它在这里给了我一个类型重定义错误:

typedef unsigned int GLhandleARB;   /* shader object handle */

所以我把它注释掉了,希望它不重要。其次,关于 libintl 到处都有 Mach-O Linker 错误。还有一些关于ov_read的错误,似乎是一个OGG播放器。

我去安装了两次 gettext 以获得 libintl 并下载了一个用于 OS X 的 libintl 包……make 仍然无法工作,Xcode 也无法编译。

最佳答案

我发现了问题。他们的项目文件搞砸了。首先,您必须重新链接所有库。源码里Xcode文件夹下的Frameworks文件夹里有INTL.framework之类的东西,需要手动链接。其次,您必须将构建类型设置为 32 位。

现在我所要做的就是修复我遇到的运行时错误。老实说,为什么不能直接编译运行呢?

更新:以下是最新版本的具体步骤。我不需要像上次那样做那么多事情来让它工作, Gamma 故障现在已经修复了。我不知道我是否安装了一些您不会安装的库,但如果由于缺少库而无法构建,您可能可以从 MacPorts 获取它们。如果有任何缺失的库,请评论,我会更新:

# grab the src first
git clone https://github.com/assaultcube/AC ac
cd ac
git checkout 76eb031 # latest release as of 1/29/2017; I goofed last time by just taking the latest commit, which had bugs
open ./source/xcode/assaultcube.xcodeproj # should open Xcode

在 Xcode 中:

  • 选择“assaultcube”作为构建目标。
  • 将目标架构更改为 32 位
  • 转到 glext.h,并注释掉任何在您尝试构建时给出类型重定义错误的内容。对我来说,这是 typedef unsigned int GLhandleARB;typedef ptrdiff_t GLintptrARB;typedef ptrdiff_t GLsizeiptrARB;
  • build 。进入您的目标文件夹,找到 assaultcube.app。您也可以构建启动器,但由于某种原因我不想找到启动器源中缺少的资源,因此只需从 https://github.com/assaultcube/AC/releases/download/v1.2.0.2/AssaultCube_v1.2.0.2.dmg 下载已编译的 Mac 启动器/游戏版本。和符号链接(symbolic link) (ln -s [source] [destination]) 您刚刚构建到 AssaultCube.app/contents/gamedata 中的 assaultcube.app .应替换现有的 .app。
  • 一切就绪。编辑、构建并打开您刚刚符号链接(symbolic link)到的启动器以进行测试。

关于c++ - 如何在 Mac 上编译 AssaultCube?缺少 libintl.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20984645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com