我无法在Mac上编译AssaultCube。我已经下载了最新的源代码并在其中打开了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无法编译。
最佳答案
我发现了问题。他们的项目文件只是搞砸了。首先,您必须重新链接所有库。在源代码中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启动器/游戏发行版,然后仅下载ln -s [source] [destination]
的symlink(assaultcube.app
)内置到AssaultCube.app/contents/gamedata
中。应该替换现有的.app。