DOOM3在Mac OSX中的编译过程

听说DOOM3的源码编写的很优美,所以就想亲自编译试试。这个过程中果然出现了很多问题,就找到了这篇文章Doom3 compilation instructions for Mac OS X。是2011年写的,有的步骤已经不用做了。

  1. 修改Architecture和Target SDK 把”Architectures”从”ppc i386”修改为”32-bit Intel” 改变baseSDK 为 “Latest MacOSX”

  2. 修改丢失的框架引用 重新添加Carbon.framework, IOKit.framework, OpenGL.framework, CoreAudio.framework 引用到 Doom3 项目

  3. 修改ppc_intrinsics.h.(这步已经OK)

  4. 修改Id linker 参数 设置Inline Methods Hidden 为 “No” 设置Symbols Hidden by Default 为 “No”

  5. 修改C++代码(这步已OK)

  6. 修改更多的C++代码 这步看一下文章的里的说明

  7. 修改编译器 把所有的编译器都改成LLVM GCC 4.2

  8. 修改OpenAL weak reference 删除-weak_framework OpenAL,并且添加OpenAL.framework

  9. 删除旧版的curl lib reference 删除curl项目的引用,添加libcurl.dylib到Doom3项目的框架列表中

  10. Don’t build unused architectures. 设置”Build active Architecture only”为 Yes

  11. 为链接器添加库 添加库文件game.dylib、libidklib_pic.a

  12. 添加游戏资源(assets) 需要把游戏的base目录考到项目中去

  13. 链接到game.dylib

如果你启动游戏的时候出错:

Dyld Error Message:
Library not loaded: /usr/local/lib/game.dylib
Referenced from: /Users/dev/TTimo-doom3.gpl-1559777/neo/sys/osx/build/Debug/Doom 3.app/Contents/MacOS/Doom 3
Reason: image not found

有两个解决方案: 1.拷贝 game.dylib 到 /usr/local/lib,或者用lnm命令建立一个软连接

2.设置”Dynamic Library Install Name”为”“,这样Doom3就会在当前目录找game.dylib