今天一整天都在Mac上編譯ACE,就一種感覺(jué),很混亂。。。到現(xiàn)在,總算有些理解了~
整體來(lái)說(shuō),在Mac上編譯ACE并不難,網(wǎng)上的資料也很多,麻煩的如何能讓xcode使用ACE,因?yàn)閤code支持平臺(tái)的問(wèn)題,會(huì)導(dǎo)致鏈接時(shí)出錯(cuò)。比如,按照網(wǎng)上常規(guī)的方法編譯的ACE,在xcode中使用debug x86-64或者i386等都沒(méi)有問(wèn)題,但是如果換成release,那就會(huì)鏈接失敗。這里總結(jié)一下我的經(jīng)歷,不敢說(shuō)一定正確,至少我現(xiàn)在可以在xcode下編譯,調(diào)試ACE程序了,雖然還有很多的warnning,但也不管了,能跑起來(lái),我就很感激了。。。不扯了~
編譯ACE網(wǎng)上的過(guò)程如下 :
1. 在./ace下添加config.h文件,內(nèi)容如下:
#include "config-macosx-snowleopard.h"
2. 在./include /makeinclude下添加platform_macros.GNU文件,內(nèi)容如下:
debug = 0
shared_libs = 0
static_libs = 1
include ${ACE_ROOT}/include/makeinclude/platform_macosx_snowleopard.GNU
不多解釋,很好理解。經(jīng)過(guò)上面的過(guò)程,再編譯ACE基本沒(méi)有問(wèn)題了,使用xcode的debug模式編譯程序也ok,但release是不行的,表現(xiàn)的是鏈接錯(cuò)誤,提示的是‘file was built for unsupported file format which is not the architecture being linked (i386)’類似的信息。此時(shí),需要修改platform_macros.GNU文件,添加如下內(nèi)容,就可以了。
buildbits = universal
這個(gè)配置的意義,請(qǐng)查看platform_macosx_snowleopard.GNU文件,我理解應(yīng)該是用于定義平臺(tái)的。
至此,使用i386,x86-64,ppc等配置都可以編譯成功了,我也可以瞑目去安心寫代碼了~是的,鏈接時(shí)還有很多warnings,不管了,反正我是沒(méi)辦法去掉了,各位有啥好主意,請(qǐng)告訴我。。。