我无法让AssaultCube在Mac上编译。我已经下载了最新的源代码,并在里面打开了Xcode项目(因为运行“make”会给出错误“'找不到'INTL / libintl.h'文件”)。我安装了Xcode,并且我经常使用它来编译我自己的代码,但是他们的代码不起作用。
首先,源语法有错误。它在这里给我一个类型重新定义错误:
typedef unsigned int GLhandleARB; /* shader object handle */
所以我评论说,希望它不重要。其次,libintl上到处都有Mach-O Linker错误。还有一些关于ov_read的错误,这似乎是一个OGG玩家。
我去安装gettext两次以获取libintl并下载了一个用于OS X的libintl包... make仍然无效,Xcode也无法编译。
答案 0 :(得分:1)
我发现了问题。他们的项目文件搞砸了。首先,您必须重新链接所有库。在源代码中Xcode文件夹的Frameworks文件夹中,有一些类似于INTL.framework的东西,您必须手动链接。其次,您必须将构建类型设置为32位。
现在我所要做的就是解决我遇到的运行时错误。老实说,为什么不能只编译并运行?
更新:以下是最新版本的确切步骤。我没必要像上次一样工作,伽玛故障现在已经解决了。我不知道我是否安装了一些你不会拥有的库,但如果由于缺少库而无法构建,你可以从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中:
glext.h
,并在尝试构建时注释掉任何有关类型重新定义错误的内容。对我来说,这是typedef unsigned int GLhandleARB;
,typedef ptrdiff_t GLintptrARB;
和typedef ptrdiff_t GLsizeiptrARB;
assaultcube.app
。你也可以构建启动器,但启动器源中缺少资源,原因是我不想找到它,所以只需从https://github.com/assaultcube/AC/releases/download/v1.2.0.2/AssaultCube_v1.2.0.2.dmg下载已编译的Mac启动器/游戏版本,并使用符号链接({{ 1}})您刚刚构建到ln -s [source] [destination]
的{{1}}。应该替换现有的.app。