今天一整天都在Mac上编译ACE,就一种感觉,很混乱。。。到现在,总算有些理解了~
整体来说,在Mac上编译ACE并不难,网上的资料也很多,麻烦的如何能让xcode使用ACE,因为xcode支持平台的问题,会导致链接时出错。比如,按照网上常规的方法编译的ACE,在xcode中使用debug x86-64或者i386等都没有问题,但是如果换成release,那就会链接失败。这里总结一下我的经历,不敢说一定正确,至少我现在可以在xcode下编译,调试ACE程序了,虽然还有很多的warnning,但也不管了,能跑起来,我就很感激了。。。不扯了~
编译ACE网上的过程如下 :
1. 在./ace下添加config.h文件,内容如下:
#include "config-macosx-snowleopard.h"
2. 在./include /makeinclude下添加platform_macros.GNU文件,内容如下:
debug = 0
shared_libs = 0
static_libs = 1
include ${ACE_ROOT}/include/makeinclude/platform_macosx_snowleopard.GNU
不多解释,很好理解。经过上面的过程,再编译ACE基本没有问题了,使用xcode的debug模式编译程序也ok,但release是不行的,表现的是链接错误,提示的是‘file was built for unsupported file format which is not the architecture being linked (i386)’类似的信息。此时,需要修改platform_macros.GNU文件,添加如下内容,就可以了。
buildbits = universal
这个配置的意义,请查看platform_macosx_snowleopard.GNU文件,我理解应该是用于定义平台的。
至此,使用i386,x86-64,ppc等配置都可以编译成功了,我也可以瞑目去安心写代码了~是的,链接时还有很多warnings,不管了,反正我是没办法去掉了,各位有啥好主意,请告诉我。。。